Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save khankluan24/6153f7fc4668c187da03f42e7e21fe96 to your computer and use it in GitHub Desktop.
Save khankluan24/6153f7fc4668c187da03f42e7e21fe96 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.24+commit.e11b9ed9.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)
pragma solidity ^0.8.20;
/**
* @dev Standard ERC20 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.
*/
interface IERC20Errors {
/**
* @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param balance Current balance for the interacting account.
* @param needed Minimum amount required to perform a transfer.
*/
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC20InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC20InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.
* @param spender Address that may be allowed to operate on tokens without being their owner.
* @param allowance Amount of tokens a `spender` is allowed to operate with.
* @param needed Minimum amount required to perform a transfer.
*/
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC20InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `spender` to be approved. Used in approvals.
* @param spender Address that may be allowed to operate on tokens without being their owner.
*/
error ERC20InvalidSpender(address spender);
}
/**
* @dev Standard ERC721 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.
*/
interface IERC721Errors {
/**
* @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.
* Used in balance queries.
* @param owner Address of the current owner of a token.
*/
error ERC721InvalidOwner(address owner);
/**
* @dev Indicates a `tokenId` whose `owner` is the zero address.
* @param tokenId Identifier number of a token.
*/
error ERC721NonexistentToken(uint256 tokenId);
/**
* @dev Indicates an error related to the ownership over a particular token. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param tokenId Identifier number of a token.
* @param owner Address of the current owner of a token.
*/
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC721InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC721InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `operator`’s approval. Used in transfers.
* @param operator Address that may be allowed to operate on tokens without being their owner.
* @param tokenId Identifier number of a token.
*/
error ERC721InsufficientApproval(address operator, uint256 tokenId);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC721InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `operator` to be approved. Used in approvals.
* @param operator Address that may be allowed to operate on tokens without being their owner.
*/
error ERC721InvalidOperator(address operator);
}
/**
* @dev Standard ERC1155 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.
*/
interface IERC1155Errors {
/**
* @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param balance Current balance for the interacting account.
* @param needed Minimum amount required to perform a transfer.
* @param tokenId Identifier number of a token.
*/
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC1155InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC1155InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `operator`’s approval. Used in transfers.
* @param operator Address that may be allowed to operate on tokens without being their owner.
* @param owner Address of the current owner of a token.
*/
error ERC1155MissingApprovalForAll(address operator, address owner);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC1155InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `operator` to be approved. Used in approvals.
* @param operator Address that may be allowed to operate on tokens without being their owner.
*/
error ERC1155InvalidOperator(address operator);
/**
* @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.
* Used in batch transfers.
* @param idsLength Length of the array of token identifiers
* @param valuesLength Length of the array of token amounts
*/
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.20;
import {IERC20} from "./IERC20.sol";
import {IERC20Metadata} from "./extensions/IERC20Metadata.sol";
import {Context} from "../../utils/Context.sol";
import {IERC20Errors} from "../../interfaces/draft-IERC6093.sol";
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
*
* TIP: For a detailed writeup see our guide
* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* The default value of {decimals} is 18. To change this, you should override
* this function so it returns a different value.
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead returning `false` on failure. This behavior is nonetheless
* conventional and does not conflict with the expectations of ERC20
* applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*/
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
mapping(address account => uint256) private _balances;
mapping(address account => mapping(address spender => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* All two of these values are immutable: they can only be set once during
* construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5.05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the default value returned by this function, unless
* it's overridden.
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `value`.
*/
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `value` is the maximum `uint256`, the allowance is not updated on
* `transferFrom`. This is semantically equivalent to an infinite approval.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* NOTE: Does not update the allowance if the current allowance
* is the maximum `uint256`.
*
* Requirements:
*
* - `from` and `to` cannot be the zero address.
* - `from` must have a balance of at least `value`.
* - the caller must have allowance for ``from``'s tokens of at least
* `value`.
*/
function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
/**
* @dev Moves a `value` amount of tokens from `from` to `to`.
*
* This internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* NOTE: This function is not virtual, {_update} should be overridden instead.
*/
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value);
}
/**
* @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`
* (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding
* this function.
*
* Emits a {Transfer} event.
*/
function _update(address from, address to, uint256 value) internal virtual {
if (from == address(0)) {
// Overflow check required: The rest of the code assumes that totalSupply never overflows
_totalSupply += value;
} else {
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
unchecked {
// Overflow not possible: value <= fromBalance <= totalSupply.
_balances[from] = fromBalance - value;
}
}
if (to == address(0)) {
unchecked {
// Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
_totalSupply -= value;
}
} else {
unchecked {
// Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
_balances[to] += value;
}
}
emit Transfer(from, to, value);
}
/**
* @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).
* Relies on the `_update` mechanism
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* NOTE: This function is not virtual, {_update} should be overridden instead.
*/
function _mint(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value);
}
/**
* @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.
* Relies on the `_update` mechanism.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* NOTE: This function is not virtual, {_update} should be overridden instead
*/
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value);
}
/**
* @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*
* Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.
*/
function _approve(address owner, address spender, uint256 value) internal {
_approve(owner, spender, value, true);
}
/**
* @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.
*
* By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by
* `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any
* `Approval` event during `transferFrom` operations.
*
* Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to
* true using the following override:
* ```
* function _approve(address owner, address spender, uint256 value, bool) internal virtual override {
* super._approve(owner, spender, value, true);
* }
* ```
*
* Requirements are the same as {_approve}.
*/
function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
/**
* @dev Updates `owner` s allowance for `spender` based on spent `value`.
*
* Does not update the allowance value in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Does not emit an {Approval} event.
*/
function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(spender, currentAllowance, value);
}
unchecked {
_approve(owner, spender, currentAllowance - value, false);
}
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.20;
import {IERC20} from "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @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 value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens 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 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` 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 value) external returns (bool);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false
}
},
{
"files": "*.yml",
"options": {}
},
{
"files": "*.yaml",
"options": {}
},
{
"files": "*.toml",
"options": {}
},
{
"files": "*.json",
"options": {}
},
{
"files": "*.js",
"options": {}
},
{
"files": "*.ts",
"options": {}
}
]
}
{
"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": {
"@_68": {
"entryPoint": null,
"id": 68,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 455,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 529,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 613,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256_fromMemory": {
"entryPoint": 635,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"allocate_memory": {
"entryPoint": 330,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 190,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 360,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_string_storage": {
"entryPoint": 893,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 786,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 1617,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 1193,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_uint256": {
"entryPoint": 579,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 1155,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 1032,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 1344,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 413,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 911,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 841,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 1315,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 276,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 1023,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 1285,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 1572,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 796,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 231,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 1071,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 207,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 211,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 203,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 199,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 215,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 926,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 1273,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 1127,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 938,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 1080,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 588,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 1123,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:9390:1",
"nodeType": "YulBlock",
"src": "0:9390:1",
"statements": [
{
"body": {
"nativeSrc": "47:35:1",
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nativeSrc": "57:19:1",
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "73:2:1",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "67:5:1",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nativeSrc": "67:9:1",
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "57:6:1",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "7:75:1",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "40:6:1",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nativeSrc": "177:28:1",
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "194:1:1",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "197:1:1",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "187:6:1",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nativeSrc": "187:12:1",
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nativeSrc": "187:12:1",
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "88:117:1",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nativeSrc": "300:28:1",
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "317:1:1",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "320:1:1",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "310:6:1",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "211:117:1",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nativeSrc": "423:28:1",
"nodeType": "YulBlock",
"src": "423:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "440:1:1",
"nodeType": "YulLiteral",
"src": "440:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "443:1:1",
"nodeType": "YulLiteral",
"src": "443:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "433:6:1",
"nodeType": "YulIdentifier",
"src": "433:6:1"
},
"nativeSrc": "433:12:1",
"nodeType": "YulFunctionCall",
"src": "433:12:1"
},
"nativeSrc": "433:12:1",
"nodeType": "YulExpressionStatement",
"src": "433:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "334:117:1",
"nodeType": "YulFunctionDefinition",
"src": "334:117:1"
},
{
"body": {
"nativeSrc": "546:28:1",
"nodeType": "YulBlock",
"src": "546:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "563:1:1",
"nodeType": "YulLiteral",
"src": "563:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "566:1:1",
"nodeType": "YulLiteral",
"src": "566:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "556:6:1",
"nodeType": "YulIdentifier",
"src": "556:6:1"
},
"nativeSrc": "556:12:1",
"nodeType": "YulFunctionCall",
"src": "556:12:1"
},
"nativeSrc": "556:12:1",
"nodeType": "YulExpressionStatement",
"src": "556:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "457:117:1",
"nodeType": "YulFunctionDefinition",
"src": "457:117:1"
},
{
"body": {
"nativeSrc": "628:54:1",
"nodeType": "YulBlock",
"src": "628:54:1",
"statements": [
{
"nativeSrc": "638:38:1",
"nodeType": "YulAssignment",
"src": "638:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "656:5:1",
"nodeType": "YulIdentifier",
"src": "656:5:1"
},
{
"kind": "number",
"nativeSrc": "663:2:1",
"nodeType": "YulLiteral",
"src": "663:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "652:3:1",
"nodeType": "YulIdentifier",
"src": "652:3:1"
},
"nativeSrc": "652:14:1",
"nodeType": "YulFunctionCall",
"src": "652:14:1"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "672:2:1",
"nodeType": "YulLiteral",
"src": "672:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "668:3:1",
"nodeType": "YulIdentifier",
"src": "668:3:1"
},
"nativeSrc": "668:7:1",
"nodeType": "YulFunctionCall",
"src": "668:7:1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "648:3:1",
"nodeType": "YulIdentifier",
"src": "648:3:1"
},
"nativeSrc": "648:28:1",
"nodeType": "YulFunctionCall",
"src": "648:28:1"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "638:6:1",
"nodeType": "YulIdentifier",
"src": "638:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "580:102:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "611:5:1",
"nodeType": "YulTypedName",
"src": "611:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "621:6:1",
"nodeType": "YulTypedName",
"src": "621:6:1",
"type": ""
}
],
"src": "580:102:1"
},
{
"body": {
"nativeSrc": "716:152:1",
"nodeType": "YulBlock",
"src": "716:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "733:1:1",
"nodeType": "YulLiteral",
"src": "733:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "736:77:1",
"nodeType": "YulLiteral",
"src": "736:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "726:6:1",
"nodeType": "YulIdentifier",
"src": "726:6:1"
},
"nativeSrc": "726:88:1",
"nodeType": "YulFunctionCall",
"src": "726:88:1"
},
"nativeSrc": "726:88:1",
"nodeType": "YulExpressionStatement",
"src": "726:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "830:1:1",
"nodeType": "YulLiteral",
"src": "830:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "833:4:1",
"nodeType": "YulLiteral",
"src": "833:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "823:6:1",
"nodeType": "YulIdentifier",
"src": "823:6:1"
},
"nativeSrc": "823:15:1",
"nodeType": "YulFunctionCall",
"src": "823:15:1"
},
"nativeSrc": "823:15:1",
"nodeType": "YulExpressionStatement",
"src": "823:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "854:1:1",
"nodeType": "YulLiteral",
"src": "854:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "857:4:1",
"nodeType": "YulLiteral",
"src": "857:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "847:6:1",
"nodeType": "YulIdentifier",
"src": "847:6:1"
},
"nativeSrc": "847:15:1",
"nodeType": "YulFunctionCall",
"src": "847:15:1"
},
"nativeSrc": "847:15:1",
"nodeType": "YulExpressionStatement",
"src": "847:15:1"
}
]
},
"name": "panic_error_0x41",
"nativeSrc": "688:180:1",
"nodeType": "YulFunctionDefinition",
"src": "688:180:1"
},
{
"body": {
"nativeSrc": "917:238:1",
"nodeType": "YulBlock",
"src": "917:238:1",
"statements": [
{
"nativeSrc": "927:58:1",
"nodeType": "YulVariableDeclaration",
"src": "927:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nativeSrc": "949:6:1",
"nodeType": "YulIdentifier",
"src": "949:6:1"
},
{
"arguments": [
{
"name": "size",
"nativeSrc": "979:4:1",
"nodeType": "YulIdentifier",
"src": "979:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "957:21:1",
"nodeType": "YulIdentifier",
"src": "957:21:1"
},
"nativeSrc": "957:27:1",
"nodeType": "YulFunctionCall",
"src": "957:27:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "945:3:1",
"nodeType": "YulIdentifier",
"src": "945:3:1"
},
"nativeSrc": "945:40:1",
"nodeType": "YulFunctionCall",
"src": "945:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nativeSrc": "931:10:1",
"nodeType": "YulTypedName",
"src": "931:10:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "1096:22:1",
"nodeType": "YulBlock",
"src": "1096:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "1098:16:1",
"nodeType": "YulIdentifier",
"src": "1098:16:1"
},
"nativeSrc": "1098:18:1",
"nodeType": "YulFunctionCall",
"src": "1098:18:1"
},
"nativeSrc": "1098:18:1",
"nodeType": "YulExpressionStatement",
"src": "1098:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nativeSrc": "1039:10:1",
"nodeType": "YulIdentifier",
"src": "1039:10:1"
},
{
"kind": "number",
"nativeSrc": "1051:18:1",
"nodeType": "YulLiteral",
"src": "1051:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "1036:2:1",
"nodeType": "YulIdentifier",
"src": "1036:2:1"
},
"nativeSrc": "1036:34:1",
"nodeType": "YulFunctionCall",
"src": "1036:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nativeSrc": "1075:10:1",
"nodeType": "YulIdentifier",
"src": "1075:10:1"
},
{
"name": "memPtr",
"nativeSrc": "1087:6:1",
"nodeType": "YulIdentifier",
"src": "1087:6:1"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "1072:2:1",
"nodeType": "YulIdentifier",
"src": "1072:2:1"
},
"nativeSrc": "1072:22:1",
"nodeType": "YulFunctionCall",
"src": "1072:22:1"
}
],
"functionName": {
"name": "or",
"nativeSrc": "1033:2:1",
"nodeType": "YulIdentifier",
"src": "1033:2:1"
},
"nativeSrc": "1033:62:1",
"nodeType": "YulFunctionCall",
"src": "1033:62:1"
},
"nativeSrc": "1030:88:1",
"nodeType": "YulIf",
"src": "1030:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1134:2:1",
"nodeType": "YulLiteral",
"src": "1134:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nativeSrc": "1138:10:1",
"nodeType": "YulIdentifier",
"src": "1138:10:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1127:6:1",
"nodeType": "YulIdentifier",
"src": "1127:6:1"
},
"nativeSrc": "1127:22:1",
"nodeType": "YulFunctionCall",
"src": "1127:22:1"
},
"nativeSrc": "1127:22:1",
"nodeType": "YulExpressionStatement",
"src": "1127:22:1"
}
]
},
"name": "finalize_allocation",
"nativeSrc": "874:281:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "903:6:1",
"nodeType": "YulTypedName",
"src": "903:6:1",
"type": ""
},
{
"name": "size",
"nativeSrc": "911:4:1",
"nodeType": "YulTypedName",
"src": "911:4:1",
"type": ""
}
],
"src": "874:281:1"
},
{
"body": {
"nativeSrc": "1202:88:1",
"nodeType": "YulBlock",
"src": "1202:88:1",
"statements": [
{
"nativeSrc": "1212:30:1",
"nodeType": "YulAssignment",
"src": "1212:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nativeSrc": "1222:18:1",
"nodeType": "YulIdentifier",
"src": "1222:18:1"
},
"nativeSrc": "1222:20:1",
"nodeType": "YulFunctionCall",
"src": "1222:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "1212:6:1",
"nodeType": "YulIdentifier",
"src": "1212:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nativeSrc": "1271:6:1",
"nodeType": "YulIdentifier",
"src": "1271:6:1"
},
{
"name": "size",
"nativeSrc": "1279:4:1",
"nodeType": "YulIdentifier",
"src": "1279:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nativeSrc": "1251:19:1",
"nodeType": "YulIdentifier",
"src": "1251:19:1"
},
"nativeSrc": "1251:33:1",
"nodeType": "YulFunctionCall",
"src": "1251:33:1"
},
"nativeSrc": "1251:33:1",
"nodeType": "YulExpressionStatement",
"src": "1251:33:1"
}
]
},
"name": "allocate_memory",
"nativeSrc": "1161:129:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nativeSrc": "1186:4:1",
"nodeType": "YulTypedName",
"src": "1186:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "1195:6:1",
"nodeType": "YulTypedName",
"src": "1195:6:1",
"type": ""
}
],
"src": "1161:129:1"
},
{
"body": {
"nativeSrc": "1363:241:1",
"nodeType": "YulBlock",
"src": "1363:241:1",
"statements": [
{
"body": {
"nativeSrc": "1468:22:1",
"nodeType": "YulBlock",
"src": "1468:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "1470:16:1",
"nodeType": "YulIdentifier",
"src": "1470:16:1"
},
"nativeSrc": "1470:18:1",
"nodeType": "YulFunctionCall",
"src": "1470:18:1"
},
"nativeSrc": "1470:18:1",
"nodeType": "YulExpressionStatement",
"src": "1470:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "1440:6:1",
"nodeType": "YulIdentifier",
"src": "1440:6:1"
},
{
"kind": "number",
"nativeSrc": "1448:18:1",
"nodeType": "YulLiteral",
"src": "1448:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "1437:2:1",
"nodeType": "YulIdentifier",
"src": "1437:2:1"
},
"nativeSrc": "1437:30:1",
"nodeType": "YulFunctionCall",
"src": "1437:30:1"
},
"nativeSrc": "1434:56:1",
"nodeType": "YulIf",
"src": "1434:56:1"
},
{
"nativeSrc": "1500:37:1",
"nodeType": "YulAssignment",
"src": "1500:37:1",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "1530:6:1",
"nodeType": "YulIdentifier",
"src": "1530:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "1508:21:1",
"nodeType": "YulIdentifier",
"src": "1508:21:1"
},
"nativeSrc": "1508:29:1",
"nodeType": "YulFunctionCall",
"src": "1508:29:1"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "1500:4:1",
"nodeType": "YulIdentifier",
"src": "1500:4:1"
}
]
},
{
"nativeSrc": "1574:23:1",
"nodeType": "YulAssignment",
"src": "1574:23:1",
"value": {
"arguments": [
{
"name": "size",
"nativeSrc": "1586:4:1",
"nodeType": "YulIdentifier",
"src": "1586:4:1"
},
{
"kind": "number",
"nativeSrc": "1592:4:1",
"nodeType": "YulLiteral",
"src": "1592:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1582:3:1",
"nodeType": "YulIdentifier",
"src": "1582:3:1"
},
"nativeSrc": "1582:15:1",
"nodeType": "YulFunctionCall",
"src": "1582:15:1"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "1574:4:1",
"nodeType": "YulIdentifier",
"src": "1574:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nativeSrc": "1296:308:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nativeSrc": "1347:6:1",
"nodeType": "YulTypedName",
"src": "1347:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nativeSrc": "1358:4:1",
"nodeType": "YulTypedName",
"src": "1358:4:1",
"type": ""
}
],
"src": "1296:308:1"
},
{
"body": {
"nativeSrc": "1672:184:1",
"nodeType": "YulBlock",
"src": "1672:184:1",
"statements": [
{
"nativeSrc": "1682:10:1",
"nodeType": "YulVariableDeclaration",
"src": "1682:10:1",
"value": {
"kind": "number",
"nativeSrc": "1691:1:1",
"nodeType": "YulLiteral",
"src": "1691:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "1686:1:1",
"nodeType": "YulTypedName",
"src": "1686:1:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "1751:63:1",
"nodeType": "YulBlock",
"src": "1751:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "1776:3:1",
"nodeType": "YulIdentifier",
"src": "1776:3:1"
},
{
"name": "i",
"nativeSrc": "1781:1:1",
"nodeType": "YulIdentifier",
"src": "1781:1:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1772:3:1",
"nodeType": "YulIdentifier",
"src": "1772:3:1"
},
"nativeSrc": "1772:11:1",
"nodeType": "YulFunctionCall",
"src": "1772:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "1795:3:1",
"nodeType": "YulIdentifier",
"src": "1795:3:1"
},
{
"name": "i",
"nativeSrc": "1800:1:1",
"nodeType": "YulIdentifier",
"src": "1800:1:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1791:3:1",
"nodeType": "YulIdentifier",
"src": "1791:3:1"
},
"nativeSrc": "1791:11:1",
"nodeType": "YulFunctionCall",
"src": "1791:11:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "1785:5:1",
"nodeType": "YulIdentifier",
"src": "1785:5:1"
},
"nativeSrc": "1785:18:1",
"nodeType": "YulFunctionCall",
"src": "1785:18:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1765:6:1",
"nodeType": "YulIdentifier",
"src": "1765:6:1"
},
"nativeSrc": "1765:39:1",
"nodeType": "YulFunctionCall",
"src": "1765:39:1"
},
"nativeSrc": "1765:39:1",
"nodeType": "YulExpressionStatement",
"src": "1765:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "1712:1:1",
"nodeType": "YulIdentifier",
"src": "1712:1:1"
},
{
"name": "length",
"nativeSrc": "1715:6:1",
"nodeType": "YulIdentifier",
"src": "1715:6:1"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "1709:2:1",
"nodeType": "YulIdentifier",
"src": "1709:2:1"
},
"nativeSrc": "1709:13:1",
"nodeType": "YulFunctionCall",
"src": "1709:13:1"
},
"nativeSrc": "1701:113:1",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "1723:19:1",
"nodeType": "YulBlock",
"src": "1723:19:1",
"statements": [
{
"nativeSrc": "1725:15:1",
"nodeType": "YulAssignment",
"src": "1725:15:1",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "1734:1:1",
"nodeType": "YulIdentifier",
"src": "1734:1:1"
},
{
"kind": "number",
"nativeSrc": "1737:2:1",
"nodeType": "YulLiteral",
"src": "1737:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1730:3:1",
"nodeType": "YulIdentifier",
"src": "1730:3:1"
},
"nativeSrc": "1730:10:1",
"nodeType": "YulFunctionCall",
"src": "1730:10:1"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "1725:1:1",
"nodeType": "YulIdentifier",
"src": "1725:1:1"
}
]
}
]
},
"pre": {
"nativeSrc": "1705:3:1",
"nodeType": "YulBlock",
"src": "1705:3:1",
"statements": []
},
"src": "1701:113:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "1834:3:1",
"nodeType": "YulIdentifier",
"src": "1834:3:1"
},
{
"name": "length",
"nativeSrc": "1839:6:1",
"nodeType": "YulIdentifier",
"src": "1839:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1830:3:1",
"nodeType": "YulIdentifier",
"src": "1830:3:1"
},
"nativeSrc": "1830:16:1",
"nodeType": "YulFunctionCall",
"src": "1830:16:1"
},
{
"kind": "number",
"nativeSrc": "1848:1:1",
"nodeType": "YulLiteral",
"src": "1848:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1823:6:1",
"nodeType": "YulIdentifier",
"src": "1823:6:1"
},
"nativeSrc": "1823:27:1",
"nodeType": "YulFunctionCall",
"src": "1823:27:1"
},
"nativeSrc": "1823:27:1",
"nodeType": "YulExpressionStatement",
"src": "1823:27:1"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "1610:246:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "1654:3:1",
"nodeType": "YulTypedName",
"src": "1654:3:1",
"type": ""
},
{
"name": "dst",
"nativeSrc": "1659:3:1",
"nodeType": "YulTypedName",
"src": "1659:3:1",
"type": ""
},
{
"name": "length",
"nativeSrc": "1664:6:1",
"nodeType": "YulTypedName",
"src": "1664:6:1",
"type": ""
}
],
"src": "1610:246:1"
},
{
"body": {
"nativeSrc": "1957:339:1",
"nodeType": "YulBlock",
"src": "1957:339:1",
"statements": [
{
"nativeSrc": "1967:75:1",
"nodeType": "YulAssignment",
"src": "1967:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nativeSrc": "2034:6:1",
"nodeType": "YulIdentifier",
"src": "2034:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nativeSrc": "1992:41:1",
"nodeType": "YulIdentifier",
"src": "1992:41:1"
},
"nativeSrc": "1992:49:1",
"nodeType": "YulFunctionCall",
"src": "1992:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "1976:15:1",
"nodeType": "YulIdentifier",
"src": "1976:15:1"
},
"nativeSrc": "1976:66:1",
"nodeType": "YulFunctionCall",
"src": "1976:66:1"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "1967:5:1",
"nodeType": "YulIdentifier",
"src": "1967:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nativeSrc": "2058:5:1",
"nodeType": "YulIdentifier",
"src": "2058:5:1"
},
{
"name": "length",
"nativeSrc": "2065:6:1",
"nodeType": "YulIdentifier",
"src": "2065:6:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2051:6:1",
"nodeType": "YulIdentifier",
"src": "2051:6:1"
},
"nativeSrc": "2051:21:1",
"nodeType": "YulFunctionCall",
"src": "2051:21:1"
},
"nativeSrc": "2051:21:1",
"nodeType": "YulExpressionStatement",
"src": "2051:21:1"
},
{
"nativeSrc": "2081:27:1",
"nodeType": "YulVariableDeclaration",
"src": "2081:27:1",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "2096:5:1",
"nodeType": "YulIdentifier",
"src": "2096:5:1"
},
{
"kind": "number",
"nativeSrc": "2103:4:1",
"nodeType": "YulLiteral",
"src": "2103:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2092:3:1",
"nodeType": "YulIdentifier",
"src": "2092:3:1"
},
"nativeSrc": "2092:16:1",
"nodeType": "YulFunctionCall",
"src": "2092:16:1"
},
"variables": [
{
"name": "dst",
"nativeSrc": "2085:3:1",
"nodeType": "YulTypedName",
"src": "2085:3:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "2146:83:1",
"nodeType": "YulBlock",
"src": "2146:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "2148:77:1",
"nodeType": "YulIdentifier",
"src": "2148:77:1"
},
"nativeSrc": "2148:79:1",
"nodeType": "YulFunctionCall",
"src": "2148:79:1"
},
"nativeSrc": "2148:79:1",
"nodeType": "YulExpressionStatement",
"src": "2148:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "2127:3:1",
"nodeType": "YulIdentifier",
"src": "2127:3:1"
},
{
"name": "length",
"nativeSrc": "2132:6:1",
"nodeType": "YulIdentifier",
"src": "2132:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2123:3:1",
"nodeType": "YulIdentifier",
"src": "2123:3:1"
},
"nativeSrc": "2123:16:1",
"nodeType": "YulFunctionCall",
"src": "2123:16:1"
},
{
"name": "end",
"nativeSrc": "2141:3:1",
"nodeType": "YulIdentifier",
"src": "2141:3:1"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "2120:2:1",
"nodeType": "YulIdentifier",
"src": "2120:2:1"
},
"nativeSrc": "2120:25:1",
"nodeType": "YulFunctionCall",
"src": "2120:25:1"
},
"nativeSrc": "2117:112:1",
"nodeType": "YulIf",
"src": "2117:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nativeSrc": "2273:3:1",
"nodeType": "YulIdentifier",
"src": "2273:3:1"
},
{
"name": "dst",
"nativeSrc": "2278:3:1",
"nodeType": "YulIdentifier",
"src": "2278:3:1"
},
{
"name": "length",
"nativeSrc": "2283:6:1",
"nodeType": "YulIdentifier",
"src": "2283:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "2238:34:1",
"nodeType": "YulIdentifier",
"src": "2238:34:1"
},
"nativeSrc": "2238:52:1",
"nodeType": "YulFunctionCall",
"src": "2238:52:1"
},
"nativeSrc": "2238:52:1",
"nodeType": "YulExpressionStatement",
"src": "2238:52:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nativeSrc": "1862:434:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "1930:3:1",
"nodeType": "YulTypedName",
"src": "1930:3:1",
"type": ""
},
{
"name": "length",
"nativeSrc": "1935:6:1",
"nodeType": "YulTypedName",
"src": "1935:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "1943:3:1",
"nodeType": "YulTypedName",
"src": "1943:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "1951:5:1",
"nodeType": "YulTypedName",
"src": "1951:5:1",
"type": ""
}
],
"src": "1862:434:1"
},
{
"body": {
"nativeSrc": "2389:282:1",
"nodeType": "YulBlock",
"src": "2389:282:1",
"statements": [
{
"body": {
"nativeSrc": "2438:83:1",
"nodeType": "YulBlock",
"src": "2438:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "2440:77:1",
"nodeType": "YulIdentifier",
"src": "2440:77:1"
},
"nativeSrc": "2440:79:1",
"nodeType": "YulFunctionCall",
"src": "2440:79:1"
},
"nativeSrc": "2440:79:1",
"nodeType": "YulExpressionStatement",
"src": "2440:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "2417:6:1",
"nodeType": "YulIdentifier",
"src": "2417:6:1"
},
{
"kind": "number",
"nativeSrc": "2425:4:1",
"nodeType": "YulLiteral",
"src": "2425:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2413:3:1",
"nodeType": "YulIdentifier",
"src": "2413:3:1"
},
"nativeSrc": "2413:17:1",
"nodeType": "YulFunctionCall",
"src": "2413:17:1"
},
{
"name": "end",
"nativeSrc": "2432:3:1",
"nodeType": "YulIdentifier",
"src": "2432:3:1"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "2409:3:1",
"nodeType": "YulIdentifier",
"src": "2409:3:1"
},
"nativeSrc": "2409:27:1",
"nodeType": "YulFunctionCall",
"src": "2409:27:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2402:6:1",
"nodeType": "YulIdentifier",
"src": "2402:6:1"
},
"nativeSrc": "2402:35:1",
"nodeType": "YulFunctionCall",
"src": "2402:35:1"
},
"nativeSrc": "2399:122:1",
"nodeType": "YulIf",
"src": "2399:122:1"
},
{
"nativeSrc": "2530:27:1",
"nodeType": "YulVariableDeclaration",
"src": "2530:27:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2550:6:1",
"nodeType": "YulIdentifier",
"src": "2550:6:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "2544:5:1",
"nodeType": "YulIdentifier",
"src": "2544:5:1"
},
"nativeSrc": "2544:13:1",
"nodeType": "YulFunctionCall",
"src": "2544:13:1"
},
"variables": [
{
"name": "length",
"nativeSrc": "2534:6:1",
"nodeType": "YulTypedName",
"src": "2534:6:1",
"type": ""
}
]
},
{
"nativeSrc": "2566:99:1",
"nodeType": "YulAssignment",
"src": "2566:99:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "2638:6:1",
"nodeType": "YulIdentifier",
"src": "2638:6:1"
},
{
"kind": "number",
"nativeSrc": "2646:4:1",
"nodeType": "YulLiteral",
"src": "2646:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2634:3:1",
"nodeType": "YulIdentifier",
"src": "2634:3:1"
},
"nativeSrc": "2634:17:1",
"nodeType": "YulFunctionCall",
"src": "2634:17:1"
},
{
"name": "length",
"nativeSrc": "2653:6:1",
"nodeType": "YulIdentifier",
"src": "2653:6:1"
},
{
"name": "end",
"nativeSrc": "2661:3:1",
"nodeType": "YulIdentifier",
"src": "2661:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nativeSrc": "2575:58:1",
"nodeType": "YulIdentifier",
"src": "2575:58:1"
},
"nativeSrc": "2575:90:1",
"nodeType": "YulFunctionCall",
"src": "2575:90:1"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "2566:5:1",
"nodeType": "YulIdentifier",
"src": "2566:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nativeSrc": "2316:355:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2367:6:1",
"nodeType": "YulTypedName",
"src": "2367:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "2375:3:1",
"nodeType": "YulTypedName",
"src": "2375:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "2383:5:1",
"nodeType": "YulTypedName",
"src": "2383:5:1",
"type": ""
}
],
"src": "2316:355:1"
},
{
"body": {
"nativeSrc": "2722:32:1",
"nodeType": "YulBlock",
"src": "2722:32:1",
"statements": [
{
"nativeSrc": "2732:16:1",
"nodeType": "YulAssignment",
"src": "2732:16:1",
"value": {
"name": "value",
"nativeSrc": "2743:5:1",
"nodeType": "YulIdentifier",
"src": "2743:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "2732:7:1",
"nodeType": "YulIdentifier",
"src": "2732:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "2677:77:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2704:5:1",
"nodeType": "YulTypedName",
"src": "2704:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "2714:7:1",
"nodeType": "YulTypedName",
"src": "2714:7:1",
"type": ""
}
],
"src": "2677:77:1"
},
{
"body": {
"nativeSrc": "2803:79:1",
"nodeType": "YulBlock",
"src": "2803:79:1",
"statements": [
{
"body": {
"nativeSrc": "2860:16:1",
"nodeType": "YulBlock",
"src": "2860:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2869:1:1",
"nodeType": "YulLiteral",
"src": "2869:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2872:1:1",
"nodeType": "YulLiteral",
"src": "2872:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2862:6:1",
"nodeType": "YulIdentifier",
"src": "2862:6:1"
},
"nativeSrc": "2862:12:1",
"nodeType": "YulFunctionCall",
"src": "2862:12:1"
},
"nativeSrc": "2862:12:1",
"nodeType": "YulExpressionStatement",
"src": "2862:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "2826:5:1",
"nodeType": "YulIdentifier",
"src": "2826:5:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2851:5:1",
"nodeType": "YulIdentifier",
"src": "2851:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2833:17:1",
"nodeType": "YulIdentifier",
"src": "2833:17:1"
},
"nativeSrc": "2833:24:1",
"nodeType": "YulFunctionCall",
"src": "2833:24:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "2823:2:1",
"nodeType": "YulIdentifier",
"src": "2823:2:1"
},
"nativeSrc": "2823:35:1",
"nodeType": "YulFunctionCall",
"src": "2823:35:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2816:6:1",
"nodeType": "YulIdentifier",
"src": "2816:6:1"
},
"nativeSrc": "2816:43:1",
"nodeType": "YulFunctionCall",
"src": "2816:43:1"
},
"nativeSrc": "2813:63:1",
"nodeType": "YulIf",
"src": "2813:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "2760:122:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2796:5:1",
"nodeType": "YulTypedName",
"src": "2796:5:1",
"type": ""
}
],
"src": "2760:122:1"
},
{
"body": {
"nativeSrc": "2951:80:1",
"nodeType": "YulBlock",
"src": "2951:80:1",
"statements": [
{
"nativeSrc": "2961:22:1",
"nodeType": "YulAssignment",
"src": "2961:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2976:6:1",
"nodeType": "YulIdentifier",
"src": "2976:6:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "2970:5:1",
"nodeType": "YulIdentifier",
"src": "2970:5:1"
},
"nativeSrc": "2970:13:1",
"nodeType": "YulFunctionCall",
"src": "2970:13:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2961:5:1",
"nodeType": "YulIdentifier",
"src": "2961:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "3019:5:1",
"nodeType": "YulIdentifier",
"src": "3019:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "2992:26:1",
"nodeType": "YulIdentifier",
"src": "2992:26:1"
},
"nativeSrc": "2992:33:1",
"nodeType": "YulFunctionCall",
"src": "2992:33:1"
},
"nativeSrc": "2992:33:1",
"nodeType": "YulExpressionStatement",
"src": "2992:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "2888:143:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2929:6:1",
"nodeType": "YulTypedName",
"src": "2929:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "2937:3:1",
"nodeType": "YulTypedName",
"src": "2937:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2945:5:1",
"nodeType": "YulTypedName",
"src": "2945:5:1",
"type": ""
}
],
"src": "2888:143:1"
},
{
"body": {
"nativeSrc": "3168:878:1",
"nodeType": "YulBlock",
"src": "3168:878:1",
"statements": [
{
"body": {
"nativeSrc": "3214:83:1",
"nodeType": "YulBlock",
"src": "3214:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "3216:77:1",
"nodeType": "YulIdentifier",
"src": "3216:77:1"
},
"nativeSrc": "3216:79:1",
"nodeType": "YulFunctionCall",
"src": "3216:79:1"
},
"nativeSrc": "3216:79:1",
"nodeType": "YulExpressionStatement",
"src": "3216:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "3189:7:1",
"nodeType": "YulIdentifier",
"src": "3189:7:1"
},
{
"name": "headStart",
"nativeSrc": "3198:9:1",
"nodeType": "YulIdentifier",
"src": "3198:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "3185:3:1",
"nodeType": "YulIdentifier",
"src": "3185:3:1"
},
"nativeSrc": "3185:23:1",
"nodeType": "YulFunctionCall",
"src": "3185:23:1"
},
{
"kind": "number",
"nativeSrc": "3210:2:1",
"nodeType": "YulLiteral",
"src": "3210:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "3181:3:1",
"nodeType": "YulIdentifier",
"src": "3181:3:1"
},
"nativeSrc": "3181:32:1",
"nodeType": "YulFunctionCall",
"src": "3181:32:1"
},
"nativeSrc": "3178:119:1",
"nodeType": "YulIf",
"src": "3178:119:1"
},
{
"nativeSrc": "3307:291:1",
"nodeType": "YulBlock",
"src": "3307:291:1",
"statements": [
{
"nativeSrc": "3322:38:1",
"nodeType": "YulVariableDeclaration",
"src": "3322:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3346:9:1",
"nodeType": "YulIdentifier",
"src": "3346:9:1"
},
{
"kind": "number",
"nativeSrc": "3357:1:1",
"nodeType": "YulLiteral",
"src": "3357:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3342:3:1",
"nodeType": "YulIdentifier",
"src": "3342:3:1"
},
"nativeSrc": "3342:17:1",
"nodeType": "YulFunctionCall",
"src": "3342:17:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "3336:5:1",
"nodeType": "YulIdentifier",
"src": "3336:5:1"
},
"nativeSrc": "3336:24:1",
"nodeType": "YulFunctionCall",
"src": "3336:24:1"
},
"variables": [
{
"name": "offset",
"nativeSrc": "3326:6:1",
"nodeType": "YulTypedName",
"src": "3326:6:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "3407:83:1",
"nodeType": "YulBlock",
"src": "3407:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "3409:77:1",
"nodeType": "YulIdentifier",
"src": "3409:77:1"
},
"nativeSrc": "3409:79:1",
"nodeType": "YulFunctionCall",
"src": "3409:79:1"
},
"nativeSrc": "3409:79:1",
"nodeType": "YulExpressionStatement",
"src": "3409:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "3379:6:1",
"nodeType": "YulIdentifier",
"src": "3379:6:1"
},
{
"kind": "number",
"nativeSrc": "3387:18:1",
"nodeType": "YulLiteral",
"src": "3387:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "3376:2:1",
"nodeType": "YulIdentifier",
"src": "3376:2:1"
},
"nativeSrc": "3376:30:1",
"nodeType": "YulFunctionCall",
"src": "3376:30:1"
},
"nativeSrc": "3373:117:1",
"nodeType": "YulIf",
"src": "3373:117:1"
},
{
"nativeSrc": "3504:84:1",
"nodeType": "YulAssignment",
"src": "3504:84:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3560:9:1",
"nodeType": "YulIdentifier",
"src": "3560:9:1"
},
{
"name": "offset",
"nativeSrc": "3571:6:1",
"nodeType": "YulIdentifier",
"src": "3571:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3556:3:1",
"nodeType": "YulIdentifier",
"src": "3556:3:1"
},
"nativeSrc": "3556:22:1",
"nodeType": "YulFunctionCall",
"src": "3556:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "3580:7:1",
"nodeType": "YulIdentifier",
"src": "3580:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nativeSrc": "3514:41:1",
"nodeType": "YulIdentifier",
"src": "3514:41:1"
},
"nativeSrc": "3514:74:1",
"nodeType": "YulFunctionCall",
"src": "3514:74:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "3504:6:1",
"nodeType": "YulIdentifier",
"src": "3504:6:1"
}
]
}
]
},
{
"nativeSrc": "3608:292:1",
"nodeType": "YulBlock",
"src": "3608:292:1",
"statements": [
{
"nativeSrc": "3623:39:1",
"nodeType": "YulVariableDeclaration",
"src": "3623:39:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3647:9:1",
"nodeType": "YulIdentifier",
"src": "3647:9:1"
},
{
"kind": "number",
"nativeSrc": "3658:2:1",
"nodeType": "YulLiteral",
"src": "3658:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3643:3:1",
"nodeType": "YulIdentifier",
"src": "3643:3:1"
},
"nativeSrc": "3643:18:1",
"nodeType": "YulFunctionCall",
"src": "3643:18:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "3637:5:1",
"nodeType": "YulIdentifier",
"src": "3637:5:1"
},
"nativeSrc": "3637:25:1",
"nodeType": "YulFunctionCall",
"src": "3637:25:1"
},
"variables": [
{
"name": "offset",
"nativeSrc": "3627:6:1",
"nodeType": "YulTypedName",
"src": "3627:6:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "3709:83:1",
"nodeType": "YulBlock",
"src": "3709:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "3711:77:1",
"nodeType": "YulIdentifier",
"src": "3711:77:1"
},
"nativeSrc": "3711:79:1",
"nodeType": "YulFunctionCall",
"src": "3711:79:1"
},
"nativeSrc": "3711:79:1",
"nodeType": "YulExpressionStatement",
"src": "3711:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "3681:6:1",
"nodeType": "YulIdentifier",
"src": "3681:6:1"
},
{
"kind": "number",
"nativeSrc": "3689:18:1",
"nodeType": "YulLiteral",
"src": "3689:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "3678:2:1",
"nodeType": "YulIdentifier",
"src": "3678:2:1"
},
"nativeSrc": "3678:30:1",
"nodeType": "YulFunctionCall",
"src": "3678:30:1"
},
"nativeSrc": "3675:117:1",
"nodeType": "YulIf",
"src": "3675:117:1"
},
{
"nativeSrc": "3806:84:1",
"nodeType": "YulAssignment",
"src": "3806:84:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3862:9:1",
"nodeType": "YulIdentifier",
"src": "3862:9:1"
},
{
"name": "offset",
"nativeSrc": "3873:6:1",
"nodeType": "YulIdentifier",
"src": "3873:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3858:3:1",
"nodeType": "YulIdentifier",
"src": "3858:3:1"
},
"nativeSrc": "3858:22:1",
"nodeType": "YulFunctionCall",
"src": "3858:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "3882:7:1",
"nodeType": "YulIdentifier",
"src": "3882:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nativeSrc": "3816:41:1",
"nodeType": "YulIdentifier",
"src": "3816:41:1"
},
"nativeSrc": "3816:74:1",
"nodeType": "YulFunctionCall",
"src": "3816:74:1"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "3806:6:1",
"nodeType": "YulIdentifier",
"src": "3806:6:1"
}
]
}
]
},
{
"nativeSrc": "3910:129:1",
"nodeType": "YulBlock",
"src": "3910:129:1",
"statements": [
{
"nativeSrc": "3925:16:1",
"nodeType": "YulVariableDeclaration",
"src": "3925:16:1",
"value": {
"kind": "number",
"nativeSrc": "3939:2:1",
"nodeType": "YulLiteral",
"src": "3939:2:1",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "3929:6:1",
"nodeType": "YulTypedName",
"src": "3929:6:1",
"type": ""
}
]
},
{
"nativeSrc": "3955:74:1",
"nodeType": "YulAssignment",
"src": "3955:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4001:9:1",
"nodeType": "YulIdentifier",
"src": "4001:9:1"
},
{
"name": "offset",
"nativeSrc": "4012:6:1",
"nodeType": "YulIdentifier",
"src": "4012:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3997:3:1",
"nodeType": "YulIdentifier",
"src": "3997:3:1"
},
"nativeSrc": "3997:22:1",
"nodeType": "YulFunctionCall",
"src": "3997:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "4021:7:1",
"nodeType": "YulIdentifier",
"src": "4021:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "3965:31:1",
"nodeType": "YulIdentifier",
"src": "3965:31:1"
},
"nativeSrc": "3965:64:1",
"nodeType": "YulFunctionCall",
"src": "3965:64:1"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "3955:6:1",
"nodeType": "YulIdentifier",
"src": "3955:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256_fromMemory",
"nativeSrc": "3037:1009:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3122:9:1",
"nodeType": "YulTypedName",
"src": "3122:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "3133:7:1",
"nodeType": "YulTypedName",
"src": "3133:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "3145:6:1",
"nodeType": "YulTypedName",
"src": "3145:6:1",
"type": ""
},
{
"name": "value1",
"nativeSrc": "3153:6:1",
"nodeType": "YulTypedName",
"src": "3153:6:1",
"type": ""
},
{
"name": "value2",
"nativeSrc": "3161:6:1",
"nodeType": "YulTypedName",
"src": "3161:6:1",
"type": ""
}
],
"src": "3037:1009:1"
},
{
"body": {
"nativeSrc": "4111:40:1",
"nodeType": "YulBlock",
"src": "4111:40:1",
"statements": [
{
"nativeSrc": "4122:22:1",
"nodeType": "YulAssignment",
"src": "4122:22:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "4138:5:1",
"nodeType": "YulIdentifier",
"src": "4138:5:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "4132:5:1",
"nodeType": "YulIdentifier",
"src": "4132:5:1"
},
"nativeSrc": "4132:12:1",
"nodeType": "YulFunctionCall",
"src": "4132:12:1"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "4122:6:1",
"nodeType": "YulIdentifier",
"src": "4122:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "4052:99:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4094:5:1",
"nodeType": "YulTypedName",
"src": "4094:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "4104:6:1",
"nodeType": "YulTypedName",
"src": "4104:6:1",
"type": ""
}
],
"src": "4052:99:1"
},
{
"body": {
"nativeSrc": "4185:152:1",
"nodeType": "YulBlock",
"src": "4185:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "4202:1:1",
"nodeType": "YulLiteral",
"src": "4202:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "4205:77:1",
"nodeType": "YulLiteral",
"src": "4205:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4195:6:1",
"nodeType": "YulIdentifier",
"src": "4195:6:1"
},
"nativeSrc": "4195:88:1",
"nodeType": "YulFunctionCall",
"src": "4195:88:1"
},
"nativeSrc": "4195:88:1",
"nodeType": "YulExpressionStatement",
"src": "4195:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "4299:1:1",
"nodeType": "YulLiteral",
"src": "4299:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "4302:4:1",
"nodeType": "YulLiteral",
"src": "4302:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4292:6:1",
"nodeType": "YulIdentifier",
"src": "4292:6:1"
},
"nativeSrc": "4292:15:1",
"nodeType": "YulFunctionCall",
"src": "4292:15:1"
},
"nativeSrc": "4292:15:1",
"nodeType": "YulExpressionStatement",
"src": "4292:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "4323:1:1",
"nodeType": "YulLiteral",
"src": "4323:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "4326:4:1",
"nodeType": "YulLiteral",
"src": "4326:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "4316:6:1",
"nodeType": "YulIdentifier",
"src": "4316:6:1"
},
"nativeSrc": "4316:15:1",
"nodeType": "YulFunctionCall",
"src": "4316:15:1"
},
"nativeSrc": "4316:15:1",
"nodeType": "YulExpressionStatement",
"src": "4316:15:1"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "4157:180:1",
"nodeType": "YulFunctionDefinition",
"src": "4157:180:1"
},
{
"body": {
"nativeSrc": "4394:269:1",
"nodeType": "YulBlock",
"src": "4394:269:1",
"statements": [
{
"nativeSrc": "4404:22:1",
"nodeType": "YulAssignment",
"src": "4404:22:1",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "4418:4:1",
"nodeType": "YulIdentifier",
"src": "4418:4:1"
},
{
"kind": "number",
"nativeSrc": "4424:1:1",
"nodeType": "YulLiteral",
"src": "4424:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "4414:3:1",
"nodeType": "YulIdentifier",
"src": "4414:3:1"
},
"nativeSrc": "4414:12:1",
"nodeType": "YulFunctionCall",
"src": "4414:12:1"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "4404:6:1",
"nodeType": "YulIdentifier",
"src": "4404:6:1"
}
]
},
{
"nativeSrc": "4435:38:1",
"nodeType": "YulVariableDeclaration",
"src": "4435:38:1",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "4465:4:1",
"nodeType": "YulIdentifier",
"src": "4465:4:1"
},
{
"kind": "number",
"nativeSrc": "4471:1:1",
"nodeType": "YulLiteral",
"src": "4471:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4461:3:1",
"nodeType": "YulIdentifier",
"src": "4461:3:1"
},
"nativeSrc": "4461:12:1",
"nodeType": "YulFunctionCall",
"src": "4461:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "4439:18:1",
"nodeType": "YulTypedName",
"src": "4439:18:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "4512:51:1",
"nodeType": "YulBlock",
"src": "4512:51:1",
"statements": [
{
"nativeSrc": "4526:27:1",
"nodeType": "YulAssignment",
"src": "4526:27:1",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "4540:6:1",
"nodeType": "YulIdentifier",
"src": "4540:6:1"
},
{
"kind": "number",
"nativeSrc": "4548:4:1",
"nodeType": "YulLiteral",
"src": "4548:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4536:3:1",
"nodeType": "YulIdentifier",
"src": "4536:3:1"
},
"nativeSrc": "4536:17:1",
"nodeType": "YulFunctionCall",
"src": "4536:17:1"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "4526:6:1",
"nodeType": "YulIdentifier",
"src": "4526:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "4492:18:1",
"nodeType": "YulIdentifier",
"src": "4492:18:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "4485:6:1",
"nodeType": "YulIdentifier",
"src": "4485:6:1"
},
"nativeSrc": "4485:26:1",
"nodeType": "YulFunctionCall",
"src": "4485:26:1"
},
"nativeSrc": "4482:81:1",
"nodeType": "YulIf",
"src": "4482:81:1"
},
{
"body": {
"nativeSrc": "4615:42:1",
"nodeType": "YulBlock",
"src": "4615:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "4629:16:1",
"nodeType": "YulIdentifier",
"src": "4629:16:1"
},
"nativeSrc": "4629:18:1",
"nodeType": "YulFunctionCall",
"src": "4629:18:1"
},
"nativeSrc": "4629:18:1",
"nodeType": "YulExpressionStatement",
"src": "4629:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "4579:18:1",
"nodeType": "YulIdentifier",
"src": "4579:18:1"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "4602:6:1",
"nodeType": "YulIdentifier",
"src": "4602:6:1"
},
{
"kind": "number",
"nativeSrc": "4610:2:1",
"nodeType": "YulLiteral",
"src": "4610:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "4599:2:1",
"nodeType": "YulIdentifier",
"src": "4599:2:1"
},
"nativeSrc": "4599:14:1",
"nodeType": "YulFunctionCall",
"src": "4599:14:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "4576:2:1",
"nodeType": "YulIdentifier",
"src": "4576:2:1"
},
"nativeSrc": "4576:38:1",
"nodeType": "YulFunctionCall",
"src": "4576:38:1"
},
"nativeSrc": "4573:84:1",
"nodeType": "YulIf",
"src": "4573:84:1"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "4343:320:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "4378:4:1",
"nodeType": "YulTypedName",
"src": "4378:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "4387:6:1",
"nodeType": "YulTypedName",
"src": "4387:6:1",
"type": ""
}
],
"src": "4343:320:1"
},
{
"body": {
"nativeSrc": "4723:87:1",
"nodeType": "YulBlock",
"src": "4723:87:1",
"statements": [
{
"nativeSrc": "4733:11:1",
"nodeType": "YulAssignment",
"src": "4733:11:1",
"value": {
"name": "ptr",
"nativeSrc": "4741:3:1",
"nodeType": "YulIdentifier",
"src": "4741:3:1"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "4733:4:1",
"nodeType": "YulIdentifier",
"src": "4733:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "4761:1:1",
"nodeType": "YulLiteral",
"src": "4761:1:1",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nativeSrc": "4764:3:1",
"nodeType": "YulIdentifier",
"src": "4764:3:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4754:6:1",
"nodeType": "YulIdentifier",
"src": "4754:6:1"
},
"nativeSrc": "4754:14:1",
"nodeType": "YulFunctionCall",
"src": "4754:14:1"
},
"nativeSrc": "4754:14:1",
"nodeType": "YulExpressionStatement",
"src": "4754:14:1"
},
{
"nativeSrc": "4777:26:1",
"nodeType": "YulAssignment",
"src": "4777:26:1",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "4795:1:1",
"nodeType": "YulLiteral",
"src": "4795:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "4798:4:1",
"nodeType": "YulLiteral",
"src": "4798:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nativeSrc": "4785:9:1",
"nodeType": "YulIdentifier",
"src": "4785:9:1"
},
"nativeSrc": "4785:18:1",
"nodeType": "YulFunctionCall",
"src": "4785:18:1"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "4777:4:1",
"nodeType": "YulIdentifier",
"src": "4777:4:1"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nativeSrc": "4669:141:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "4710:3:1",
"nodeType": "YulTypedName",
"src": "4710:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nativeSrc": "4718:4:1",
"nodeType": "YulTypedName",
"src": "4718:4:1",
"type": ""
}
],
"src": "4669:141:1"
},
{
"body": {
"nativeSrc": "4860:49:1",
"nodeType": "YulBlock",
"src": "4860:49:1",
"statements": [
{
"nativeSrc": "4870:33:1",
"nodeType": "YulAssignment",
"src": "4870:33:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "4888:5:1",
"nodeType": "YulIdentifier",
"src": "4888:5:1"
},
{
"kind": "number",
"nativeSrc": "4895:2:1",
"nodeType": "YulLiteral",
"src": "4895:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4884:3:1",
"nodeType": "YulIdentifier",
"src": "4884:3:1"
},
"nativeSrc": "4884:14:1",
"nodeType": "YulFunctionCall",
"src": "4884:14:1"
},
{
"kind": "number",
"nativeSrc": "4900:2:1",
"nodeType": "YulLiteral",
"src": "4900:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nativeSrc": "4880:3:1",
"nodeType": "YulIdentifier",
"src": "4880:3:1"
},
"nativeSrc": "4880:23:1",
"nodeType": "YulFunctionCall",
"src": "4880:23:1"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "4870:6:1",
"nodeType": "YulIdentifier",
"src": "4870:6:1"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nativeSrc": "4816:93:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4843:5:1",
"nodeType": "YulTypedName",
"src": "4843:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "4853:6:1",
"nodeType": "YulTypedName",
"src": "4853:6:1",
"type": ""
}
],
"src": "4816:93:1"
},
{
"body": {
"nativeSrc": "4968:54:1",
"nodeType": "YulBlock",
"src": "4968:54:1",
"statements": [
{
"nativeSrc": "4978:37:1",
"nodeType": "YulAssignment",
"src": "4978:37:1",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "5003:4:1",
"nodeType": "YulIdentifier",
"src": "5003:4:1"
},
{
"name": "value",
"nativeSrc": "5009:5:1",
"nodeType": "YulIdentifier",
"src": "5009:5:1"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "4999:3:1",
"nodeType": "YulIdentifier",
"src": "4999:3:1"
},
"nativeSrc": "4999:16:1",
"nodeType": "YulFunctionCall",
"src": "4999:16:1"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "4978:8:1",
"nodeType": "YulIdentifier",
"src": "4978:8:1"
}
]
}
]
},
"name": "shift_left_dynamic",
"nativeSrc": "4915:107:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "4943:4:1",
"nodeType": "YulTypedName",
"src": "4943:4:1",
"type": ""
},
{
"name": "value",
"nativeSrc": "4949:5:1",
"nodeType": "YulTypedName",
"src": "4949:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "4959:8:1",
"nodeType": "YulTypedName",
"src": "4959:8:1",
"type": ""
}
],
"src": "4915:107:1"
},
{
"body": {
"nativeSrc": "5104:317:1",
"nodeType": "YulBlock",
"src": "5104:317:1",
"statements": [
{
"nativeSrc": "5114:35:1",
"nodeType": "YulVariableDeclaration",
"src": "5114:35:1",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nativeSrc": "5135:10:1",
"nodeType": "YulIdentifier",
"src": "5135:10:1"
},
{
"kind": "number",
"nativeSrc": "5147:1:1",
"nodeType": "YulLiteral",
"src": "5147:1:1",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "5131:3:1",
"nodeType": "YulIdentifier",
"src": "5131:3:1"
},
"nativeSrc": "5131:18:1",
"nodeType": "YulFunctionCall",
"src": "5131:18:1"
},
"variables": [
{
"name": "shiftBits",
"nativeSrc": "5118:9:1",
"nodeType": "YulTypedName",
"src": "5118:9:1",
"type": ""
}
]
},
{
"nativeSrc": "5158:109:1",
"nodeType": "YulVariableDeclaration",
"src": "5158:109:1",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "5189:9:1",
"nodeType": "YulIdentifier",
"src": "5189:9:1"
},
{
"kind": "number",
"nativeSrc": "5200:66:1",
"nodeType": "YulLiteral",
"src": "5200:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "5170:18:1",
"nodeType": "YulIdentifier",
"src": "5170:18:1"
},
"nativeSrc": "5170:97:1",
"nodeType": "YulFunctionCall",
"src": "5170:97:1"
},
"variables": [
{
"name": "mask",
"nativeSrc": "5162:4:1",
"nodeType": "YulTypedName",
"src": "5162:4:1",
"type": ""
}
]
},
{
"nativeSrc": "5276:51:1",
"nodeType": "YulAssignment",
"src": "5276:51:1",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "5307:9:1",
"nodeType": "YulIdentifier",
"src": "5307:9:1"
},
{
"name": "toInsert",
"nativeSrc": "5318:8:1",
"nodeType": "YulIdentifier",
"src": "5318:8:1"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "5288:18:1",
"nodeType": "YulIdentifier",
"src": "5288:18:1"
},
"nativeSrc": "5288:39:1",
"nodeType": "YulFunctionCall",
"src": "5288:39:1"
},
"variableNames": [
{
"name": "toInsert",
"nativeSrc": "5276:8:1",
"nodeType": "YulIdentifier",
"src": "5276:8:1"
}
]
},
{
"nativeSrc": "5336:30:1",
"nodeType": "YulAssignment",
"src": "5336:30:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "5349:5:1",
"nodeType": "YulIdentifier",
"src": "5349:5:1"
},
{
"arguments": [
{
"name": "mask",
"nativeSrc": "5360:4:1",
"nodeType": "YulIdentifier",
"src": "5360:4:1"
}
],
"functionName": {
"name": "not",
"nativeSrc": "5356:3:1",
"nodeType": "YulIdentifier",
"src": "5356:3:1"
},
"nativeSrc": "5356:9:1",
"nodeType": "YulFunctionCall",
"src": "5356:9:1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "5345:3:1",
"nodeType": "YulIdentifier",
"src": "5345:3:1"
},
"nativeSrc": "5345:21:1",
"nodeType": "YulFunctionCall",
"src": "5345:21:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "5336:5:1",
"nodeType": "YulIdentifier",
"src": "5336:5:1"
}
]
},
{
"nativeSrc": "5375:40:1",
"nodeType": "YulAssignment",
"src": "5375:40:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "5388:5:1",
"nodeType": "YulIdentifier",
"src": "5388:5:1"
},
{
"arguments": [
{
"name": "toInsert",
"nativeSrc": "5399:8:1",
"nodeType": "YulIdentifier",
"src": "5399:8:1"
},
{
"name": "mask",
"nativeSrc": "5409:4:1",
"nodeType": "YulIdentifier",
"src": "5409:4:1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "5395:3:1",
"nodeType": "YulIdentifier",
"src": "5395:3:1"
},
"nativeSrc": "5395:19:1",
"nodeType": "YulFunctionCall",
"src": "5395:19:1"
}
],
"functionName": {
"name": "or",
"nativeSrc": "5385:2:1",
"nodeType": "YulIdentifier",
"src": "5385:2:1"
},
"nativeSrc": "5385:30:1",
"nodeType": "YulFunctionCall",
"src": "5385:30:1"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "5375:6:1",
"nodeType": "YulIdentifier",
"src": "5375:6:1"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nativeSrc": "5028:393:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5065:5:1",
"nodeType": "YulTypedName",
"src": "5065:5:1",
"type": ""
},
{
"name": "shiftBytes",
"nativeSrc": "5072:10:1",
"nodeType": "YulTypedName",
"src": "5072:10:1",
"type": ""
},
{
"name": "toInsert",
"nativeSrc": "5084:8:1",
"nodeType": "YulTypedName",
"src": "5084:8:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "5097:6:1",
"nodeType": "YulTypedName",
"src": "5097:6:1",
"type": ""
}
],
"src": "5028:393:1"
},
{
"body": {
"nativeSrc": "5459:28:1",
"nodeType": "YulBlock",
"src": "5459:28:1",
"statements": [
{
"nativeSrc": "5469:12:1",
"nodeType": "YulAssignment",
"src": "5469:12:1",
"value": {
"name": "value",
"nativeSrc": "5476:5:1",
"nodeType": "YulIdentifier",
"src": "5476:5:1"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "5469:3:1",
"nodeType": "YulIdentifier",
"src": "5469:3:1"
}
]
}
]
},
"name": "identity",
"nativeSrc": "5427:60:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5445:5:1",
"nodeType": "YulTypedName",
"src": "5445:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "5455:3:1",
"nodeType": "YulTypedName",
"src": "5455:3:1",
"type": ""
}
],
"src": "5427:60:1"
},
{
"body": {
"nativeSrc": "5553:82:1",
"nodeType": "YulBlock",
"src": "5553:82:1",
"statements": [
{
"nativeSrc": "5563:66:1",
"nodeType": "YulAssignment",
"src": "5563:66:1",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "5621:5:1",
"nodeType": "YulIdentifier",
"src": "5621:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "5603:17:1",
"nodeType": "YulIdentifier",
"src": "5603:17:1"
},
"nativeSrc": "5603:24:1",
"nodeType": "YulFunctionCall",
"src": "5603:24:1"
}
],
"functionName": {
"name": "identity",
"nativeSrc": "5594:8:1",
"nodeType": "YulIdentifier",
"src": "5594:8:1"
},
"nativeSrc": "5594:34:1",
"nodeType": "YulFunctionCall",
"src": "5594:34:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "5576:17:1",
"nodeType": "YulIdentifier",
"src": "5576:17:1"
},
"nativeSrc": "5576:53:1",
"nodeType": "YulFunctionCall",
"src": "5576:53:1"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "5563:9:1",
"nodeType": "YulIdentifier",
"src": "5563:9:1"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "5493:142:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5533:5:1",
"nodeType": "YulTypedName",
"src": "5533:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "5543:9:1",
"nodeType": "YulTypedName",
"src": "5543:9:1",
"type": ""
}
],
"src": "5493:142:1"
},
{
"body": {
"nativeSrc": "5688:28:1",
"nodeType": "YulBlock",
"src": "5688:28:1",
"statements": [
{
"nativeSrc": "5698:12:1",
"nodeType": "YulAssignment",
"src": "5698:12:1",
"value": {
"name": "value",
"nativeSrc": "5705:5:1",
"nodeType": "YulIdentifier",
"src": "5705:5:1"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "5698:3:1",
"nodeType": "YulIdentifier",
"src": "5698:3:1"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nativeSrc": "5641:75:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5674:5:1",
"nodeType": "YulTypedName",
"src": "5674:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "5684:3:1",
"nodeType": "YulTypedName",
"src": "5684:3:1",
"type": ""
}
],
"src": "5641:75:1"
},
{
"body": {
"nativeSrc": "5798:193:1",
"nodeType": "YulBlock",
"src": "5798:193:1",
"statements": [
{
"nativeSrc": "5808:63:1",
"nodeType": "YulVariableDeclaration",
"src": "5808:63:1",
"value": {
"arguments": [
{
"name": "value_0",
"nativeSrc": "5863:7:1",
"nodeType": "YulIdentifier",
"src": "5863:7:1"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "5832:30:1",
"nodeType": "YulIdentifier",
"src": "5832:30:1"
},
"nativeSrc": "5832:39:1",
"nodeType": "YulFunctionCall",
"src": "5832:39:1"
},
"variables": [
{
"name": "convertedValue_0",
"nativeSrc": "5812:16:1",
"nodeType": "YulTypedName",
"src": "5812:16:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "5887:4:1",
"nodeType": "YulIdentifier",
"src": "5887:4:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "5927:4:1",
"nodeType": "YulIdentifier",
"src": "5927:4:1"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "5921:5:1",
"nodeType": "YulIdentifier",
"src": "5921:5:1"
},
"nativeSrc": "5921:11:1",
"nodeType": "YulFunctionCall",
"src": "5921:11:1"
},
{
"name": "offset",
"nativeSrc": "5934:6:1",
"nodeType": "YulIdentifier",
"src": "5934:6:1"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nativeSrc": "5966:16:1",
"nodeType": "YulIdentifier",
"src": "5966:16:1"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nativeSrc": "5942:23:1",
"nodeType": "YulIdentifier",
"src": "5942:23:1"
},
"nativeSrc": "5942:41:1",
"nodeType": "YulFunctionCall",
"src": "5942:41:1"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nativeSrc": "5893:27:1",
"nodeType": "YulIdentifier",
"src": "5893:27:1"
},
"nativeSrc": "5893:91:1",
"nodeType": "YulFunctionCall",
"src": "5893:91:1"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "5880:6:1",
"nodeType": "YulIdentifier",
"src": "5880:6:1"
},
"nativeSrc": "5880:105:1",
"nodeType": "YulFunctionCall",
"src": "5880:105:1"
},
"nativeSrc": "5880:105:1",
"nodeType": "YulExpressionStatement",
"src": "5880:105:1"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "5722:269:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "5775:4:1",
"nodeType": "YulTypedName",
"src": "5775:4:1",
"type": ""
},
{
"name": "offset",
"nativeSrc": "5781:6:1",
"nodeType": "YulTypedName",
"src": "5781:6:1",
"type": ""
},
{
"name": "value_0",
"nativeSrc": "5789:7:1",
"nodeType": "YulTypedName",
"src": "5789:7:1",
"type": ""
}
],
"src": "5722:269:1"
},
{
"body": {
"nativeSrc": "6046:24:1",
"nodeType": "YulBlock",
"src": "6046:24:1",
"statements": [
{
"nativeSrc": "6056:8:1",
"nodeType": "YulAssignment",
"src": "6056:8:1",
"value": {
"kind": "number",
"nativeSrc": "6063:1:1",
"nodeType": "YulLiteral",
"src": "6063:1:1",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "6056:3:1",
"nodeType": "YulIdentifier",
"src": "6056:3:1"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "5997:73:1",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nativeSrc": "6042:3:1",
"nodeType": "YulTypedName",
"src": "6042:3:1",
"type": ""
}
],
"src": "5997:73:1"
},
{
"body": {
"nativeSrc": "6129:136:1",
"nodeType": "YulBlock",
"src": "6129:136:1",
"statements": [
{
"nativeSrc": "6139:46:1",
"nodeType": "YulVariableDeclaration",
"src": "6139:46:1",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "6153:30:1",
"nodeType": "YulIdentifier",
"src": "6153:30:1"
},
"nativeSrc": "6153:32:1",
"nodeType": "YulFunctionCall",
"src": "6153:32:1"
},
"variables": [
{
"name": "zero_0",
"nativeSrc": "6143:6:1",
"nodeType": "YulTypedName",
"src": "6143:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "6238:4:1",
"nodeType": "YulIdentifier",
"src": "6238:4:1"
},
{
"name": "offset",
"nativeSrc": "6244:6:1",
"nodeType": "YulIdentifier",
"src": "6244:6:1"
},
{
"name": "zero_0",
"nativeSrc": "6252:6:1",
"nodeType": "YulIdentifier",
"src": "6252:6:1"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "6194:43:1",
"nodeType": "YulIdentifier",
"src": "6194:43:1"
},
"nativeSrc": "6194:65:1",
"nodeType": "YulFunctionCall",
"src": "6194:65:1"
},
"nativeSrc": "6194:65:1",
"nodeType": "YulExpressionStatement",
"src": "6194:65:1"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "6076:189:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "6115:4:1",
"nodeType": "YulTypedName",
"src": "6115:4:1",
"type": ""
},
{
"name": "offset",
"nativeSrc": "6121:6:1",
"nodeType": "YulTypedName",
"src": "6121:6:1",
"type": ""
}
],
"src": "6076:189:1"
},
{
"body": {
"nativeSrc": "6321:136:1",
"nodeType": "YulBlock",
"src": "6321:136:1",
"statements": [
{
"body": {
"nativeSrc": "6388:63:1",
"nodeType": "YulBlock",
"src": "6388:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nativeSrc": "6432:5:1",
"nodeType": "YulIdentifier",
"src": "6432:5:1"
},
{
"kind": "number",
"nativeSrc": "6439:1:1",
"nodeType": "YulLiteral",
"src": "6439:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "6402:29:1",
"nodeType": "YulIdentifier",
"src": "6402:29:1"
},
"nativeSrc": "6402:39:1",
"nodeType": "YulFunctionCall",
"src": "6402:39:1"
},
"nativeSrc": "6402:39:1",
"nodeType": "YulExpressionStatement",
"src": "6402:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nativeSrc": "6341:5:1",
"nodeType": "YulIdentifier",
"src": "6341:5:1"
},
{
"name": "end",
"nativeSrc": "6348:3:1",
"nodeType": "YulIdentifier",
"src": "6348:3:1"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "6338:2:1",
"nodeType": "YulIdentifier",
"src": "6338:2:1"
},
"nativeSrc": "6338:14:1",
"nodeType": "YulFunctionCall",
"src": "6338:14:1"
},
"nativeSrc": "6331:120:1",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "6353:26:1",
"nodeType": "YulBlock",
"src": "6353:26:1",
"statements": [
{
"nativeSrc": "6355:22:1",
"nodeType": "YulAssignment",
"src": "6355:22:1",
"value": {
"arguments": [
{
"name": "start",
"nativeSrc": "6368:5:1",
"nodeType": "YulIdentifier",
"src": "6368:5:1"
},
{
"kind": "number",
"nativeSrc": "6375:1:1",
"nodeType": "YulLiteral",
"src": "6375:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6364:3:1",
"nodeType": "YulIdentifier",
"src": "6364:3:1"
},
"nativeSrc": "6364:13:1",
"nodeType": "YulFunctionCall",
"src": "6364:13:1"
},
"variableNames": [
{
"name": "start",
"nativeSrc": "6355:5:1",
"nodeType": "YulIdentifier",
"src": "6355:5:1"
}
]
}
]
},
"pre": {
"nativeSrc": "6335:2:1",
"nodeType": "YulBlock",
"src": "6335:2:1",
"statements": []
},
"src": "6331:120:1"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "6271:186:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nativeSrc": "6309:5:1",
"nodeType": "YulTypedName",
"src": "6309:5:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "6316:3:1",
"nodeType": "YulTypedName",
"src": "6316:3:1",
"type": ""
}
],
"src": "6271:186:1"
},
{
"body": {
"nativeSrc": "6542:464:1",
"nodeType": "YulBlock",
"src": "6542:464:1",
"statements": [
{
"body": {
"nativeSrc": "6568:431:1",
"nodeType": "YulBlock",
"src": "6568:431:1",
"statements": [
{
"nativeSrc": "6582:54:1",
"nodeType": "YulVariableDeclaration",
"src": "6582:54:1",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "6630:5:1",
"nodeType": "YulIdentifier",
"src": "6630:5:1"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "6598:31:1",
"nodeType": "YulIdentifier",
"src": "6598:31:1"
},
"nativeSrc": "6598:38:1",
"nodeType": "YulFunctionCall",
"src": "6598:38:1"
},
"variables": [
{
"name": "dataArea",
"nativeSrc": "6586:8:1",
"nodeType": "YulTypedName",
"src": "6586:8:1",
"type": ""
}
]
},
{
"nativeSrc": "6649:63:1",
"nodeType": "YulVariableDeclaration",
"src": "6649:63:1",
"value": {
"arguments": [
{
"name": "dataArea",
"nativeSrc": "6672:8:1",
"nodeType": "YulIdentifier",
"src": "6672:8:1"
},
{
"arguments": [
{
"name": "startIndex",
"nativeSrc": "6700:10:1",
"nodeType": "YulIdentifier",
"src": "6700:10:1"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "6682:17:1",
"nodeType": "YulIdentifier",
"src": "6682:17:1"
},
"nativeSrc": "6682:29:1",
"nodeType": "YulFunctionCall",
"src": "6682:29:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6668:3:1",
"nodeType": "YulIdentifier",
"src": "6668:3:1"
},
"nativeSrc": "6668:44:1",
"nodeType": "YulFunctionCall",
"src": "6668:44:1"
},
"variables": [
{
"name": "deleteStart",
"nativeSrc": "6653:11:1",
"nodeType": "YulTypedName",
"src": "6653:11:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "6869:27:1",
"nodeType": "YulBlock",
"src": "6869:27:1",
"statements": [
{
"nativeSrc": "6871:23:1",
"nodeType": "YulAssignment",
"src": "6871:23:1",
"value": {
"name": "dataArea",
"nativeSrc": "6886:8:1",
"nodeType": "YulIdentifier",
"src": "6886:8:1"
},
"variableNames": [
{
"name": "deleteStart",
"nativeSrc": "6871:11:1",
"nodeType": "YulIdentifier",
"src": "6871:11:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nativeSrc": "6853:10:1",
"nodeType": "YulIdentifier",
"src": "6853:10:1"
},
{
"kind": "number",
"nativeSrc": "6865:2:1",
"nodeType": "YulLiteral",
"src": "6865:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "6850:2:1",
"nodeType": "YulIdentifier",
"src": "6850:2:1"
},
"nativeSrc": "6850:18:1",
"nodeType": "YulFunctionCall",
"src": "6850:18:1"
},
"nativeSrc": "6847:49:1",
"nodeType": "YulIf",
"src": "6847:49:1"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nativeSrc": "6938:11:1",
"nodeType": "YulIdentifier",
"src": "6938:11:1"
},
{
"arguments": [
{
"name": "dataArea",
"nativeSrc": "6955:8:1",
"nodeType": "YulIdentifier",
"src": "6955:8:1"
},
{
"arguments": [
{
"name": "len",
"nativeSrc": "6983:3:1",
"nodeType": "YulIdentifier",
"src": "6983:3:1"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "6965:17:1",
"nodeType": "YulIdentifier",
"src": "6965:17:1"
},
"nativeSrc": "6965:22:1",
"nodeType": "YulFunctionCall",
"src": "6965:22:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6951:3:1",
"nodeType": "YulIdentifier",
"src": "6951:3:1"
},
"nativeSrc": "6951:37:1",
"nodeType": "YulFunctionCall",
"src": "6951:37:1"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "6909:28:1",
"nodeType": "YulIdentifier",
"src": "6909:28:1"
},
"nativeSrc": "6909:80:1",
"nodeType": "YulFunctionCall",
"src": "6909:80:1"
},
"nativeSrc": "6909:80:1",
"nodeType": "YulExpressionStatement",
"src": "6909:80:1"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nativeSrc": "6559:3:1",
"nodeType": "YulIdentifier",
"src": "6559:3:1"
},
{
"kind": "number",
"nativeSrc": "6564:2:1",
"nodeType": "YulLiteral",
"src": "6564:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "6556:2:1",
"nodeType": "YulIdentifier",
"src": "6556:2:1"
},
"nativeSrc": "6556:11:1",
"nodeType": "YulFunctionCall",
"src": "6556:11:1"
},
"nativeSrc": "6553:446:1",
"nodeType": "YulIf",
"src": "6553:446:1"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "6463:543:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nativeSrc": "6518:5:1",
"nodeType": "YulTypedName",
"src": "6518:5:1",
"type": ""
},
{
"name": "len",
"nativeSrc": "6525:3:1",
"nodeType": "YulTypedName",
"src": "6525:3:1",
"type": ""
},
{
"name": "startIndex",
"nativeSrc": "6530:10:1",
"nodeType": "YulTypedName",
"src": "6530:10:1",
"type": ""
}
],
"src": "6463:543:1"
},
{
"body": {
"nativeSrc": "7075:54:1",
"nodeType": "YulBlock",
"src": "7075:54:1",
"statements": [
{
"nativeSrc": "7085:37:1",
"nodeType": "YulAssignment",
"src": "7085:37:1",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "7110:4:1",
"nodeType": "YulIdentifier",
"src": "7110:4:1"
},
{
"name": "value",
"nativeSrc": "7116:5:1",
"nodeType": "YulIdentifier",
"src": "7116:5:1"
}
],
"functionName": {
"name": "shr",
"nativeSrc": "7106:3:1",
"nodeType": "YulIdentifier",
"src": "7106:3:1"
},
"nativeSrc": "7106:16:1",
"nodeType": "YulFunctionCall",
"src": "7106:16:1"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "7085:8:1",
"nodeType": "YulIdentifier",
"src": "7085:8:1"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "7012:117:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "7050:4:1",
"nodeType": "YulTypedName",
"src": "7050:4:1",
"type": ""
},
{
"name": "value",
"nativeSrc": "7056:5:1",
"nodeType": "YulTypedName",
"src": "7056:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "7066:8:1",
"nodeType": "YulTypedName",
"src": "7066:8:1",
"type": ""
}
],
"src": "7012:117:1"
},
{
"body": {
"nativeSrc": "7186:118:1",
"nodeType": "YulBlock",
"src": "7186:118:1",
"statements": [
{
"nativeSrc": "7196:68:1",
"nodeType": "YulVariableDeclaration",
"src": "7196:68:1",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nativeSrc": "7245:1:1",
"nodeType": "YulLiteral",
"src": "7245:1:1",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nativeSrc": "7248:5:1",
"nodeType": "YulIdentifier",
"src": "7248:5:1"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "7241:3:1",
"nodeType": "YulIdentifier",
"src": "7241:3:1"
},
"nativeSrc": "7241:13:1",
"nodeType": "YulFunctionCall",
"src": "7241:13:1"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "7260:1:1",
"nodeType": "YulLiteral",
"src": "7260:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nativeSrc": "7256:3:1",
"nodeType": "YulIdentifier",
"src": "7256:3:1"
},
"nativeSrc": "7256:6:1",
"nodeType": "YulFunctionCall",
"src": "7256:6:1"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "7212:28:1",
"nodeType": "YulIdentifier",
"src": "7212:28:1"
},
"nativeSrc": "7212:51:1",
"nodeType": "YulFunctionCall",
"src": "7212:51:1"
}
],
"functionName": {
"name": "not",
"nativeSrc": "7208:3:1",
"nodeType": "YulIdentifier",
"src": "7208:3:1"
},
"nativeSrc": "7208:56:1",
"nodeType": "YulFunctionCall",
"src": "7208:56:1"
},
"variables": [
{
"name": "mask",
"nativeSrc": "7200:4:1",
"nodeType": "YulTypedName",
"src": "7200:4:1",
"type": ""
}
]
},
{
"nativeSrc": "7273:25:1",
"nodeType": "YulAssignment",
"src": "7273:25:1",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "7287:4:1",
"nodeType": "YulIdentifier",
"src": "7287:4:1"
},
{
"name": "mask",
"nativeSrc": "7293:4:1",
"nodeType": "YulIdentifier",
"src": "7293:4:1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "7283:3:1",
"nodeType": "YulIdentifier",
"src": "7283:3:1"
},
"nativeSrc": "7283:15:1",
"nodeType": "YulFunctionCall",
"src": "7283:15:1"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "7273:6:1",
"nodeType": "YulIdentifier",
"src": "7273:6:1"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nativeSrc": "7135:169:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "7163:4:1",
"nodeType": "YulTypedName",
"src": "7163:4:1",
"type": ""
},
{
"name": "bytes",
"nativeSrc": "7169:5:1",
"nodeType": "YulTypedName",
"src": "7169:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "7179:6:1",
"nodeType": "YulTypedName",
"src": "7179:6:1",
"type": ""
}
],
"src": "7135:169:1"
},
{
"body": {
"nativeSrc": "7390:214:1",
"nodeType": "YulBlock",
"src": "7390:214:1",
"statements": [
{
"nativeSrc": "7523:37:1",
"nodeType": "YulAssignment",
"src": "7523:37:1",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "7550:4:1",
"nodeType": "YulIdentifier",
"src": "7550:4:1"
},
{
"name": "len",
"nativeSrc": "7556:3:1",
"nodeType": "YulIdentifier",
"src": "7556:3:1"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "7531:18:1",
"nodeType": "YulIdentifier",
"src": "7531:18:1"
},
"nativeSrc": "7531:29:1",
"nodeType": "YulFunctionCall",
"src": "7531:29:1"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "7523:4:1",
"nodeType": "YulIdentifier",
"src": "7523:4:1"
}
]
},
{
"nativeSrc": "7569:29:1",
"nodeType": "YulAssignment",
"src": "7569:29:1",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "7580:4:1",
"nodeType": "YulIdentifier",
"src": "7580:4:1"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "7590:1:1",
"nodeType": "YulLiteral",
"src": "7590:1:1",
"type": "",
"value": "2"
},
{
"name": "len",
"nativeSrc": "7593:3:1",
"nodeType": "YulIdentifier",
"src": "7593:3:1"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "7586:3:1",
"nodeType": "YulIdentifier",
"src": "7586:3:1"
},
"nativeSrc": "7586:11:1",
"nodeType": "YulFunctionCall",
"src": "7586:11:1"
}
],
"functionName": {
"name": "or",
"nativeSrc": "7577:2:1",
"nodeType": "YulIdentifier",
"src": "7577:2:1"
},
"nativeSrc": "7577:21:1",
"nodeType": "YulFunctionCall",
"src": "7577:21:1"
},
"variableNames": [
{
"name": "used",
"nativeSrc": "7569:4:1",
"nodeType": "YulIdentifier",
"src": "7569:4:1"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "7309:295:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "7371:4:1",
"nodeType": "YulTypedName",
"src": "7371:4:1",
"type": ""
},
{
"name": "len",
"nativeSrc": "7377:3:1",
"nodeType": "YulTypedName",
"src": "7377:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nativeSrc": "7385:4:1",
"nodeType": "YulTypedName",
"src": "7385:4:1",
"type": ""
}
],
"src": "7309:295:1"
},
{
"body": {
"nativeSrc": "7701:1303:1",
"nodeType": "YulBlock",
"src": "7701:1303:1",
"statements": [
{
"nativeSrc": "7712:51:1",
"nodeType": "YulVariableDeclaration",
"src": "7712:51:1",
"value": {
"arguments": [
{
"name": "src",
"nativeSrc": "7759:3:1",
"nodeType": "YulIdentifier",
"src": "7759:3:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "7726:32:1",
"nodeType": "YulIdentifier",
"src": "7726:32:1"
},
"nativeSrc": "7726:37:1",
"nodeType": "YulFunctionCall",
"src": "7726:37:1"
},
"variables": [
{
"name": "newLen",
"nativeSrc": "7716:6:1",
"nodeType": "YulTypedName",
"src": "7716:6:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "7848:22:1",
"nodeType": "YulBlock",
"src": "7848:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "7850:16:1",
"nodeType": "YulIdentifier",
"src": "7850:16:1"
},
"nativeSrc": "7850:18:1",
"nodeType": "YulFunctionCall",
"src": "7850:18:1"
},
"nativeSrc": "7850:18:1",
"nodeType": "YulExpressionStatement",
"src": "7850:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "7820:6:1",
"nodeType": "YulIdentifier",
"src": "7820:6:1"
},
{
"kind": "number",
"nativeSrc": "7828:18:1",
"nodeType": "YulLiteral",
"src": "7828:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "7817:2:1",
"nodeType": "YulIdentifier",
"src": "7817:2:1"
},
"nativeSrc": "7817:30:1",
"nodeType": "YulFunctionCall",
"src": "7817:30:1"
},
"nativeSrc": "7814:56:1",
"nodeType": "YulIf",
"src": "7814:56:1"
},
{
"nativeSrc": "7880:52:1",
"nodeType": "YulVariableDeclaration",
"src": "7880:52:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "7926:4:1",
"nodeType": "YulIdentifier",
"src": "7926:4:1"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "7920:5:1",
"nodeType": "YulIdentifier",
"src": "7920:5:1"
},
"nativeSrc": "7920:11:1",
"nodeType": "YulFunctionCall",
"src": "7920:11:1"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nativeSrc": "7894:25:1",
"nodeType": "YulIdentifier",
"src": "7894:25:1"
},
"nativeSrc": "7894:38:1",
"nodeType": "YulFunctionCall",
"src": "7894:38:1"
},
"variables": [
{
"name": "oldLen",
"nativeSrc": "7884:6:1",
"nodeType": "YulTypedName",
"src": "7884:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "8025:4:1",
"nodeType": "YulIdentifier",
"src": "8025:4:1"
},
{
"name": "oldLen",
"nativeSrc": "8031:6:1",
"nodeType": "YulIdentifier",
"src": "8031:6:1"
},
{
"name": "newLen",
"nativeSrc": "8039:6:1",
"nodeType": "YulIdentifier",
"src": "8039:6:1"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "7979:45:1",
"nodeType": "YulIdentifier",
"src": "7979:45:1"
},
"nativeSrc": "7979:67:1",
"nodeType": "YulFunctionCall",
"src": "7979:67:1"
},
"nativeSrc": "7979:67:1",
"nodeType": "YulExpressionStatement",
"src": "7979:67:1"
},
{
"nativeSrc": "8056:18:1",
"nodeType": "YulVariableDeclaration",
"src": "8056:18:1",
"value": {
"kind": "number",
"nativeSrc": "8073:1:1",
"nodeType": "YulLiteral",
"src": "8073:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nativeSrc": "8060:9:1",
"nodeType": "YulTypedName",
"src": "8060:9:1",
"type": ""
}
]
},
{
"nativeSrc": "8084:17:1",
"nodeType": "YulAssignment",
"src": "8084:17:1",
"value": {
"kind": "number",
"nativeSrc": "8097:4:1",
"nodeType": "YulLiteral",
"src": "8097:4:1",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "8084:9:1",
"nodeType": "YulIdentifier",
"src": "8084:9:1"
}
]
},
{
"cases": [
{
"body": {
"nativeSrc": "8148:611:1",
"nodeType": "YulBlock",
"src": "8148:611:1",
"statements": [
{
"nativeSrc": "8162:37:1",
"nodeType": "YulVariableDeclaration",
"src": "8162:37:1",
"value": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "8181:6:1",
"nodeType": "YulIdentifier",
"src": "8181:6:1"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "8193:4:1",
"nodeType": "YulLiteral",
"src": "8193:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nativeSrc": "8189:3:1",
"nodeType": "YulIdentifier",
"src": "8189:3:1"
},
"nativeSrc": "8189:9:1",
"nodeType": "YulFunctionCall",
"src": "8189:9:1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "8177:3:1",
"nodeType": "YulIdentifier",
"src": "8177:3:1"
},
"nativeSrc": "8177:22:1",
"nodeType": "YulFunctionCall",
"src": "8177:22:1"
},
"variables": [
{
"name": "loopEnd",
"nativeSrc": "8166:7:1",
"nodeType": "YulTypedName",
"src": "8166:7:1",
"type": ""
}
]
},
{
"nativeSrc": "8213:51:1",
"nodeType": "YulVariableDeclaration",
"src": "8213:51:1",
"value": {
"arguments": [
{
"name": "slot",
"nativeSrc": "8259:4:1",
"nodeType": "YulIdentifier",
"src": "8259:4:1"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "8227:31:1",
"nodeType": "YulIdentifier",
"src": "8227:31:1"
},
"nativeSrc": "8227:37:1",
"nodeType": "YulFunctionCall",
"src": "8227:37:1"
},
"variables": [
{
"name": "dstPtr",
"nativeSrc": "8217:6:1",
"nodeType": "YulTypedName",
"src": "8217:6:1",
"type": ""
}
]
},
{
"nativeSrc": "8277:10:1",
"nodeType": "YulVariableDeclaration",
"src": "8277:10:1",
"value": {
"kind": "number",
"nativeSrc": "8286:1:1",
"nodeType": "YulLiteral",
"src": "8286:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "8281:1:1",
"nodeType": "YulTypedName",
"src": "8281:1:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "8345:163:1",
"nodeType": "YulBlock",
"src": "8345:163:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "8370:6:1",
"nodeType": "YulIdentifier",
"src": "8370:6:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "8388:3:1",
"nodeType": "YulIdentifier",
"src": "8388:3:1"
},
{
"name": "srcOffset",
"nativeSrc": "8393:9:1",
"nodeType": "YulIdentifier",
"src": "8393:9:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8384:3:1",
"nodeType": "YulIdentifier",
"src": "8384:3:1"
},
"nativeSrc": "8384:19:1",
"nodeType": "YulFunctionCall",
"src": "8384:19:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "8378:5:1",
"nodeType": "YulIdentifier",
"src": "8378:5:1"
},
"nativeSrc": "8378:26:1",
"nodeType": "YulFunctionCall",
"src": "8378:26:1"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "8363:6:1",
"nodeType": "YulIdentifier",
"src": "8363:6:1"
},
"nativeSrc": "8363:42:1",
"nodeType": "YulFunctionCall",
"src": "8363:42:1"
},
"nativeSrc": "8363:42:1",
"nodeType": "YulExpressionStatement",
"src": "8363:42:1"
},
{
"nativeSrc": "8422:24:1",
"nodeType": "YulAssignment",
"src": "8422:24:1",
"value": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "8436:6:1",
"nodeType": "YulIdentifier",
"src": "8436:6:1"
},
{
"kind": "number",
"nativeSrc": "8444:1:1",
"nodeType": "YulLiteral",
"src": "8444:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8432:3:1",
"nodeType": "YulIdentifier",
"src": "8432:3:1"
},
"nativeSrc": "8432:14:1",
"nodeType": "YulFunctionCall",
"src": "8432:14:1"
},
"variableNames": [
{
"name": "dstPtr",
"nativeSrc": "8422:6:1",
"nodeType": "YulIdentifier",
"src": "8422:6:1"
}
]
},
{
"nativeSrc": "8463:31:1",
"nodeType": "YulAssignment",
"src": "8463:31:1",
"value": {
"arguments": [
{
"name": "srcOffset",
"nativeSrc": "8480:9:1",
"nodeType": "YulIdentifier",
"src": "8480:9:1"
},
{
"kind": "number",
"nativeSrc": "8491:2:1",
"nodeType": "YulLiteral",
"src": "8491:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8476:3:1",
"nodeType": "YulIdentifier",
"src": "8476:3:1"
},
"nativeSrc": "8476:18:1",
"nodeType": "YulFunctionCall",
"src": "8476:18:1"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "8463:9:1",
"nodeType": "YulIdentifier",
"src": "8463:9:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "8311:1:1",
"nodeType": "YulIdentifier",
"src": "8311:1:1"
},
{
"name": "loopEnd",
"nativeSrc": "8314:7:1",
"nodeType": "YulIdentifier",
"src": "8314:7:1"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "8308:2:1",
"nodeType": "YulIdentifier",
"src": "8308:2:1"
},
"nativeSrc": "8308:14:1",
"nodeType": "YulFunctionCall",
"src": "8308:14:1"
},
"nativeSrc": "8300:208:1",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "8323:21:1",
"nodeType": "YulBlock",
"src": "8323:21:1",
"statements": [
{
"nativeSrc": "8325:17:1",
"nodeType": "YulAssignment",
"src": "8325:17:1",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "8334:1:1",
"nodeType": "YulIdentifier",
"src": "8334:1:1"
},
{
"kind": "number",
"nativeSrc": "8337:4:1",
"nodeType": "YulLiteral",
"src": "8337:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8330:3:1",
"nodeType": "YulIdentifier",
"src": "8330:3:1"
},
"nativeSrc": "8330:12:1",
"nodeType": "YulFunctionCall",
"src": "8330:12:1"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "8325:1:1",
"nodeType": "YulIdentifier",
"src": "8325:1:1"
}
]
}
]
},
"pre": {
"nativeSrc": "8304:3:1",
"nodeType": "YulBlock",
"src": "8304:3:1",
"statements": []
},
"src": "8300:208:1"
},
{
"body": {
"nativeSrc": "8544:156:1",
"nodeType": "YulBlock",
"src": "8544:156:1",
"statements": [
{
"nativeSrc": "8562:43:1",
"nodeType": "YulVariableDeclaration",
"src": "8562:43:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "8589:3:1",
"nodeType": "YulIdentifier",
"src": "8589:3:1"
},
{
"name": "srcOffset",
"nativeSrc": "8594:9:1",
"nodeType": "YulIdentifier",
"src": "8594:9:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8585:3:1",
"nodeType": "YulIdentifier",
"src": "8585:3:1"
},
"nativeSrc": "8585:19:1",
"nodeType": "YulFunctionCall",
"src": "8585:19:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "8579:5:1",
"nodeType": "YulIdentifier",
"src": "8579:5:1"
},
"nativeSrc": "8579:26:1",
"nodeType": "YulFunctionCall",
"src": "8579:26:1"
},
"variables": [
{
"name": "lastValue",
"nativeSrc": "8566:9:1",
"nodeType": "YulTypedName",
"src": "8566:9:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "8629:6:1",
"nodeType": "YulIdentifier",
"src": "8629:6:1"
},
{
"arguments": [
{
"name": "lastValue",
"nativeSrc": "8656:9:1",
"nodeType": "YulIdentifier",
"src": "8656:9:1"
},
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "8671:6:1",
"nodeType": "YulIdentifier",
"src": "8671:6:1"
},
{
"kind": "number",
"nativeSrc": "8679:4:1",
"nodeType": "YulLiteral",
"src": "8679:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "8667:3:1",
"nodeType": "YulIdentifier",
"src": "8667:3:1"
},
"nativeSrc": "8667:17:1",
"nodeType": "YulFunctionCall",
"src": "8667:17:1"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "8637:18:1",
"nodeType": "YulIdentifier",
"src": "8637:18:1"
},
"nativeSrc": "8637:48:1",
"nodeType": "YulFunctionCall",
"src": "8637:48:1"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "8622:6:1",
"nodeType": "YulIdentifier",
"src": "8622:6:1"
},
"nativeSrc": "8622:64:1",
"nodeType": "YulFunctionCall",
"src": "8622:64:1"
},
"nativeSrc": "8622:64:1",
"nodeType": "YulExpressionStatement",
"src": "8622:64:1"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nativeSrc": "8527:7:1",
"nodeType": "YulIdentifier",
"src": "8527:7:1"
},
{
"name": "newLen",
"nativeSrc": "8536:6:1",
"nodeType": "YulIdentifier",
"src": "8536:6:1"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "8524:2:1",
"nodeType": "YulIdentifier",
"src": "8524:2:1"
},
"nativeSrc": "8524:19:1",
"nodeType": "YulFunctionCall",
"src": "8524:19:1"
},
"nativeSrc": "8521:179:1",
"nodeType": "YulIf",
"src": "8521:179:1"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "8720:4:1",
"nodeType": "YulIdentifier",
"src": "8720:4:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "8734:6:1",
"nodeType": "YulIdentifier",
"src": "8734:6:1"
},
{
"kind": "number",
"nativeSrc": "8742:1:1",
"nodeType": "YulLiteral",
"src": "8742:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "8730:3:1",
"nodeType": "YulIdentifier",
"src": "8730:3:1"
},
"nativeSrc": "8730:14:1",
"nodeType": "YulFunctionCall",
"src": "8730:14:1"
},
{
"kind": "number",
"nativeSrc": "8746:1:1",
"nodeType": "YulLiteral",
"src": "8746:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8726:3:1",
"nodeType": "YulIdentifier",
"src": "8726:3:1"
},
"nativeSrc": "8726:22:1",
"nodeType": "YulFunctionCall",
"src": "8726:22:1"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "8713:6:1",
"nodeType": "YulIdentifier",
"src": "8713:6:1"
},
"nativeSrc": "8713:36:1",
"nodeType": "YulFunctionCall",
"src": "8713:36:1"
},
"nativeSrc": "8713:36:1",
"nodeType": "YulExpressionStatement",
"src": "8713:36:1"
}
]
},
"nativeSrc": "8141:618:1",
"nodeType": "YulCase",
"src": "8141:618:1",
"value": {
"kind": "number",
"nativeSrc": "8146:1:1",
"nodeType": "YulLiteral",
"src": "8146:1:1",
"type": "",
"value": "1"
}
},
{
"body": {
"nativeSrc": "8776:222:1",
"nodeType": "YulBlock",
"src": "8776:222:1",
"statements": [
{
"nativeSrc": "8790:14:1",
"nodeType": "YulVariableDeclaration",
"src": "8790:14:1",
"value": {
"kind": "number",
"nativeSrc": "8803:1:1",
"nodeType": "YulLiteral",
"src": "8803:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nativeSrc": "8794:5:1",
"nodeType": "YulTypedName",
"src": "8794:5:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "8827:67:1",
"nodeType": "YulBlock",
"src": "8827:67:1",
"statements": [
{
"nativeSrc": "8845:35:1",
"nodeType": "YulAssignment",
"src": "8845:35:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "8864:3:1",
"nodeType": "YulIdentifier",
"src": "8864:3:1"
},
{
"name": "srcOffset",
"nativeSrc": "8869:9:1",
"nodeType": "YulIdentifier",
"src": "8869:9:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8860:3:1",
"nodeType": "YulIdentifier",
"src": "8860:3:1"
},
"nativeSrc": "8860:19:1",
"nodeType": "YulFunctionCall",
"src": "8860:19:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "8854:5:1",
"nodeType": "YulIdentifier",
"src": "8854:5:1"
},
"nativeSrc": "8854:26:1",
"nodeType": "YulFunctionCall",
"src": "8854:26:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "8845:5:1",
"nodeType": "YulIdentifier",
"src": "8845:5:1"
}
]
}
]
},
"condition": {
"name": "newLen",
"nativeSrc": "8820:6:1",
"nodeType": "YulIdentifier",
"src": "8820:6:1"
},
"nativeSrc": "8817:77:1",
"nodeType": "YulIf",
"src": "8817:77:1"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "8914:4:1",
"nodeType": "YulIdentifier",
"src": "8914:4:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "8973:5:1",
"nodeType": "YulIdentifier",
"src": "8973:5:1"
},
{
"name": "newLen",
"nativeSrc": "8980:6:1",
"nodeType": "YulIdentifier",
"src": "8980:6:1"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "8920:52:1",
"nodeType": "YulIdentifier",
"src": "8920:52:1"
},
"nativeSrc": "8920:67:1",
"nodeType": "YulFunctionCall",
"src": "8920:67:1"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "8907:6:1",
"nodeType": "YulIdentifier",
"src": "8907:6:1"
},
"nativeSrc": "8907:81:1",
"nodeType": "YulFunctionCall",
"src": "8907:81:1"
},
"nativeSrc": "8907:81:1",
"nodeType": "YulExpressionStatement",
"src": "8907:81:1"
}
]
},
"nativeSrc": "8768:230:1",
"nodeType": "YulCase",
"src": "8768:230:1",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "8121:6:1",
"nodeType": "YulIdentifier",
"src": "8121:6:1"
},
{
"kind": "number",
"nativeSrc": "8129:2:1",
"nodeType": "YulLiteral",
"src": "8129:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "8118:2:1",
"nodeType": "YulIdentifier",
"src": "8118:2:1"
},
"nativeSrc": "8118:14:1",
"nodeType": "YulFunctionCall",
"src": "8118:14:1"
},
"nativeSrc": "8111:887:1",
"nodeType": "YulSwitch",
"src": "8111:887:1"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nativeSrc": "7609:1395:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "7690:4:1",
"nodeType": "YulTypedName",
"src": "7690:4:1",
"type": ""
},
{
"name": "src",
"nativeSrc": "7696:3:1",
"nodeType": "YulTypedName",
"src": "7696:3:1",
"type": ""
}
],
"src": "7609:1395:1"
},
{
"body": {
"nativeSrc": "9038:152:1",
"nodeType": "YulBlock",
"src": "9038:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "9055:1:1",
"nodeType": "YulLiteral",
"src": "9055:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "9058:77:1",
"nodeType": "YulLiteral",
"src": "9058:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "9048:6:1",
"nodeType": "YulIdentifier",
"src": "9048:6:1"
},
"nativeSrc": "9048:88:1",
"nodeType": "YulFunctionCall",
"src": "9048:88:1"
},
"nativeSrc": "9048:88:1",
"nodeType": "YulExpressionStatement",
"src": "9048:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "9152:1:1",
"nodeType": "YulLiteral",
"src": "9152:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "9155:4:1",
"nodeType": "YulLiteral",
"src": "9155:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "9145:6:1",
"nodeType": "YulIdentifier",
"src": "9145:6:1"
},
"nativeSrc": "9145:15:1",
"nodeType": "YulFunctionCall",
"src": "9145:15:1"
},
"nativeSrc": "9145:15:1",
"nodeType": "YulExpressionStatement",
"src": "9145:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "9176:1:1",
"nodeType": "YulLiteral",
"src": "9176:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "9179:4:1",
"nodeType": "YulLiteral",
"src": "9179:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "9169:6:1",
"nodeType": "YulIdentifier",
"src": "9169:6:1"
},
"nativeSrc": "9169:15:1",
"nodeType": "YulFunctionCall",
"src": "9169:15:1"
},
"nativeSrc": "9169:15:1",
"nodeType": "YulExpressionStatement",
"src": "9169:15:1"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "9010:180:1",
"nodeType": "YulFunctionDefinition",
"src": "9010:180:1"
},
{
"body": {
"nativeSrc": "9240:147:1",
"nodeType": "YulBlock",
"src": "9240:147:1",
"statements": [
{
"nativeSrc": "9250:25:1",
"nodeType": "YulAssignment",
"src": "9250:25:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "9273:1:1",
"nodeType": "YulIdentifier",
"src": "9273:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "9255:17:1",
"nodeType": "YulIdentifier",
"src": "9255:17:1"
},
"nativeSrc": "9255:20:1",
"nodeType": "YulFunctionCall",
"src": "9255:20:1"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "9250:1:1",
"nodeType": "YulIdentifier",
"src": "9250:1:1"
}
]
},
{
"nativeSrc": "9284:25:1",
"nodeType": "YulAssignment",
"src": "9284:25:1",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "9307:1:1",
"nodeType": "YulIdentifier",
"src": "9307:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "9289:17:1",
"nodeType": "YulIdentifier",
"src": "9289:17:1"
},
"nativeSrc": "9289:20:1",
"nodeType": "YulFunctionCall",
"src": "9289:20:1"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "9284:1:1",
"nodeType": "YulIdentifier",
"src": "9284:1:1"
}
]
},
{
"nativeSrc": "9318:16:1",
"nodeType": "YulAssignment",
"src": "9318:16:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "9329:1:1",
"nodeType": "YulIdentifier",
"src": "9329:1:1"
},
{
"name": "y",
"nativeSrc": "9332:1:1",
"nodeType": "YulIdentifier",
"src": "9332:1:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9325:3:1",
"nodeType": "YulIdentifier",
"src": "9325:3:1"
},
"nativeSrc": "9325:9:1",
"nodeType": "YulFunctionCall",
"src": "9325:9:1"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "9318:3:1",
"nodeType": "YulIdentifier",
"src": "9318:3:1"
}
]
},
{
"body": {
"nativeSrc": "9358:22:1",
"nodeType": "YulBlock",
"src": "9358:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "9360:16:1",
"nodeType": "YulIdentifier",
"src": "9360:16:1"
},
"nativeSrc": "9360:18:1",
"nodeType": "YulFunctionCall",
"src": "9360:18:1"
},
"nativeSrc": "9360:18:1",
"nodeType": "YulExpressionStatement",
"src": "9360:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "9350:1:1",
"nodeType": "YulIdentifier",
"src": "9350:1:1"
},
{
"name": "sum",
"nativeSrc": "9353:3:1",
"nodeType": "YulIdentifier",
"src": "9353:3:1"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "9347:2:1",
"nodeType": "YulIdentifier",
"src": "9347:2:1"
},
"nativeSrc": "9347:10:1",
"nodeType": "YulFunctionCall",
"src": "9347:10:1"
},
"nativeSrc": "9344:36:1",
"nodeType": "YulIf",
"src": "9344:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "9196:191:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "9227:1:1",
"nodeType": "YulTypedName",
"src": "9227:1:1",
"type": ""
},
{
"name": "y",
"nativeSrc": "9230:1:1",
"nodeType": "YulTypedName",
"src": "9230:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "9236:3:1",
"nodeType": "YulTypedName",
"src": "9236:3:1",
"type": ""
}
],
"src": "9196:191:1"
}
]
},
"contents": "{\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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\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 array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\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_string_memory_ptrt_string_memory_ptrt_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\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_string_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 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_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_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_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_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_string_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_string_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 function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801562000010575f80fd5b50604051620015403803806200154083398181016040528101906200003691906200027b565b825f908162000046919062000540565b50816001908162000058919062000540565b508060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060025f828254620000ae919062000651565b925050819055505050506200068b565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200011f82620000d7565b810181811067ffffffffffffffff82111715620001415762000140620000e7565b5b80604052505050565b5f62000155620000be565b905062000163828262000114565b919050565b5f67ffffffffffffffff821115620001855762000184620000e7565b5b6200019082620000d7565b9050602081019050919050565b5f5b83811015620001bc5780820151818401526020810190506200019f565b5f8484015250505050565b5f620001dd620001d78462000168565b6200014a565b905082815260208101848484011115620001fc57620001fb620000d3565b5b620002098482856200019d565b509392505050565b5f82601f830112620002285762000227620000cf565b5b81516200023a848260208601620001c7565b91505092915050565b5f819050919050565b620002578162000243565b811462000262575f80fd5b50565b5f8151905062000275816200024c565b92915050565b5f805f60608486031215620002955762000294620000c7565b5b5f84015167ffffffffffffffff811115620002b557620002b4620000cb565b5b620002c38682870162000211565b935050602084015167ffffffffffffffff811115620002e757620002e6620000cb565b5b620002f58682870162000211565b9250506040620003088682870162000265565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200036157607f821691505b6020821081036200037757620003766200031c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003db7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200039e565b620003e786836200039e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000428620004226200041c8462000243565b620003ff565b62000243565b9050919050565b5f819050919050565b620004438362000408565b6200045b62000452826200042f565b848454620003aa565b825550505050565b5f90565b6200047162000463565b6200047e81848462000438565b505050565b5b81811015620004a557620004995f8262000467565b60018101905062000484565b5050565b601f821115620004f457620004be816200037d565b620004c9846200038f565b81016020851015620004d9578190505b620004f1620004e8856200038f565b83018262000483565b50505b505050565b5f82821c905092915050565b5f620005165f1984600802620004f9565b1980831691505092915050565b5f62000530838362000505565b9150826002028217905092915050565b6200054b8262000312565b67ffffffffffffffff811115620005675762000566620000e7565b5b62000573825462000349565b62000580828285620004a9565b5f60209050601f831160018114620005b6575f8415620005a1578287015190505b620005ad858262000523565b8655506200061c565b601f198416620005c6866200037d565b5f5b82811015620005ef57848901518255600182019150602085019450602081019050620005c8565b868310156200060f57848901516200060b601f89168262000505565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200065d8262000243565b91506200066a8362000243565b925082820190508082111562000685576200068462000624565b5b92915050565b610ea780620006995f395ff3fe60806040526004361061009b575f3560e01c8063313ce56711610063578063313ce567146101a757806370a08231146101d157806395d89b411461020d578063d0e30db014610237578063d45e09c114610241578063dd62ed3e1461027d5761009b565b806306fdde031461009f578063095ea7b3146100c957806318160ddd1461010557806323b872dd1461012f57806323e3fbd51461016b575b5f80fd5b3480156100aa575f80fd5b506100b36102b9565b6040516100c09190610964565b60405180910390f35b3480156100d4575f80fd5b506100ef60048036038101906100ea9190610a15565b610344565b6040516100fc9190610a6d565b60405180910390f35b348015610110575f80fd5b50610119610403565b6040516101269190610a95565b60405180910390f35b34801561013a575f80fd5b5061015560048036038101906101509190610aae565b610409565b6040516101629190610a6d565b60405180910390f35b348015610176575f80fd5b50610191600480360381019061018c9190610afe565b610569565b60405161019e9190610a95565b60405180910390f35b3480156101b2575f80fd5b506101bb61057e565b6040516101c89190610a95565b60405180910390f35b3480156101dc575f80fd5b506101f760048036038101906101f29190610afe565b610584565b6040516102049190610a95565b60405180910390f35b348015610218575f80fd5b50610221610599565b60405161022e9190610964565b60405180910390f35b61023f610625565b005b34801561024c575f80fd5b5061026760048036038101906102629190610a15565b6106d0565b6040516102749190610a6d565b60405180910390f35b348015610288575f80fd5b506102a3600480360381019061029e9190610b29565b6106e6565b6040516102b09190610a95565b60405180910390f35b5f80546102c590610b94565b80601f01602080910402602001604051908101604052809291908181526020018280546102f190610b94565b801561033c5780601f106103135761010080835404028352916020019161033c565b820191905f5260205f20905b81548152906001019060200180831161031f57829003601f168201915b505050505081565b5f8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f6e11fb1b7f119e3f2fa29896ef5fdf8b8a2d0d4df6fe90ba8668e7d8b2ffa25e3384846040516103f593929190610bd3565b60405180910390a192915050565b60025481565b5f8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156104c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bc90610c52565b60405180910390fd5b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461054c9190610c9d565b9250508190555061055e848484610706565b600190509392505050565b6006602052805f5260405f205f915090505481565b60035481565b6004602052805f5260405f205f915090505481565b600180546105a690610b94565b80601f01602080910402602001604051908101604052809291908181526020018280546105d290610b94565b801561061d5780601f106105f45761010080835404028352916020019161061d565b820191905f5260205f20905b81548152906001019060200180831161060057829003601f168201915b505050505081565b3460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f67016345785d8a00006103e83461067f9190610cd0565b6106899190610d3e565b90508060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b5f6106dc338484610706565b6001905092915050565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d90610db8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb90610e20565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108409190610c9d565b925050819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108939190610e3e565b925050819055507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8383836040516108cd93929190610bd3565b60405180910390a1505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156109115780820151818401526020810190506108f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610936826108da565b61094081856108e4565b93506109508185602086016108f4565b6109598161091c565b840191505092915050565b5f6020820190508181035f83015261097c818461092c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b182610988565b9050919050565b6109c1816109a7565b81146109cb575f80fd5b50565b5f813590506109dc816109b8565b92915050565b5f819050919050565b6109f4816109e2565b81146109fe575f80fd5b50565b5f81359050610a0f816109eb565b92915050565b5f8060408385031215610a2b57610a2a610984565b5b5f610a38858286016109ce565b9250506020610a4985828601610a01565b9150509250929050565b5f8115159050919050565b610a6781610a53565b82525050565b5f602082019050610a805f830184610a5e565b92915050565b610a8f816109e2565b82525050565b5f602082019050610aa85f830184610a86565b92915050565b5f805f60608486031215610ac557610ac4610984565b5b5f610ad2868287016109ce565b9350506020610ae3868287016109ce565b9250506040610af486828701610a01565b9150509250925092565b5f60208284031215610b1357610b12610984565b5b5f610b20848285016109ce565b91505092915050565b5f8060408385031215610b3f57610b3e610984565b5b5f610b4c858286016109ce565b9250506020610b5d858286016109ce565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610bab57607f821691505b602082108103610bbe57610bbd610b67565b5b50919050565b610bcd816109a7565b82525050565b5f606082019050610be65f830186610bc4565b610bf36020830185610bc4565b610c006040830184610a86565b949350505050565b7f496e73756666696369656e7420616c6c6f77616e6365000000000000000000005f82015250565b5f610c3c6016836108e4565b9150610c4782610c08565b602082019050919050565b5f6020820190508181035f830152610c6981610c30565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610ca7826109e2565b9150610cb2836109e2565b9250828203905081811115610cca57610cc9610c70565b5b92915050565b5f610cda826109e2565b9150610ce5836109e2565b9250828202610cf3816109e2565b91508282048414831517610d0a57610d09610c70565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d48826109e2565b9150610d53836109e2565b925082610d6357610d62610d11565b5b828204905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f610da26014836108e4565b9150610dad82610d6e565b602082019050919050565b5f6020820190508181035f830152610dcf81610d96565b9050919050565b7f44656164206164647265737300000000000000000000000000000000000000005f82015250565b5f610e0a600c836108e4565b9150610e1582610dd6565b602082019050919050565b5f6020820190508181035f830152610e3781610dfe565b9050919050565b5f610e48826109e2565b9150610e53836109e2565b9250828201905080821115610e6b57610e6a610c70565b5b9291505056fea264697066735822122097d3f9ead2b55dfce7cb185f9a23a734952cca391f3a5361ae7aa1a5ef0c5e2064736f6c63430008180033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1540 CODESIZE SUB DUP1 PUSH3 0x1540 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x36 SWAP2 SWAP1 PUSH3 0x27B JUMP JUMPDEST DUP3 PUSH0 SWAP1 DUP2 PUSH3 0x46 SWAP2 SWAP1 PUSH3 0x540 JUMP JUMPDEST POP DUP2 PUSH1 0x1 SWAP1 DUP2 PUSH3 0x58 SWAP2 SWAP1 PUSH3 0x540 JUMP JUMPDEST POP DUP1 PUSH1 0x4 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH3 0xAE SWAP2 SWAP1 PUSH3 0x651 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP PUSH3 0x68B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH3 0x11F DUP3 PUSH3 0xD7 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x141 JUMPI PUSH3 0x140 PUSH3 0xE7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x155 PUSH3 0xBE JUMP JUMPDEST SWAP1 POP PUSH3 0x163 DUP3 DUP3 PUSH3 0x114 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x185 JUMPI PUSH3 0x184 PUSH3 0xE7 JUMP JUMPDEST JUMPDEST PUSH3 0x190 DUP3 PUSH3 0xD7 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x1BC JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x19F JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x1DD PUSH3 0x1D7 DUP5 PUSH3 0x168 JUMP JUMPDEST PUSH3 0x14A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x1FC JUMPI PUSH3 0x1FB PUSH3 0xD3 JUMP JUMPDEST JUMPDEST PUSH3 0x209 DUP5 DUP3 DUP6 PUSH3 0x19D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x228 JUMPI PUSH3 0x227 PUSH3 0xCF JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x23A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x1C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x257 DUP2 PUSH3 0x243 JUMP JUMPDEST DUP2 EQ PUSH3 0x262 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH3 0x275 DUP2 PUSH3 0x24C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x295 JUMPI PUSH3 0x294 PUSH3 0xC7 JUMP JUMPDEST JUMPDEST PUSH0 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x2B5 JUMPI PUSH3 0x2B4 PUSH3 0xCB JUMP JUMPDEST JUMPDEST PUSH3 0x2C3 DUP7 DUP3 DUP8 ADD PUSH3 0x211 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x2E7 JUMPI PUSH3 0x2E6 PUSH3 0xCB JUMP JUMPDEST JUMPDEST PUSH3 0x2F5 DUP7 DUP3 DUP8 ADD PUSH3 0x211 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH3 0x308 DUP7 DUP3 DUP8 ADD PUSH3 0x265 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x361 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x377 JUMPI PUSH3 0x376 PUSH3 0x31C JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH3 0x3DB PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x39E JUMP JUMPDEST PUSH3 0x3E7 DUP7 DUP4 PUSH3 0x39E 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x428 PUSH3 0x422 PUSH3 0x41C DUP5 PUSH3 0x243 JUMP JUMPDEST PUSH3 0x3FF JUMP JUMPDEST PUSH3 0x243 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x443 DUP4 PUSH3 0x408 JUMP JUMPDEST PUSH3 0x45B PUSH3 0x452 DUP3 PUSH3 0x42F JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x3AA JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH3 0x471 PUSH3 0x463 JUMP JUMPDEST PUSH3 0x47E DUP2 DUP5 DUP5 PUSH3 0x438 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x4A5 JUMPI PUSH3 0x499 PUSH0 DUP3 PUSH3 0x467 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x484 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x4F4 JUMPI PUSH3 0x4BE DUP2 PUSH3 0x37D JUMP JUMPDEST PUSH3 0x4C9 DUP5 PUSH3 0x38F JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x4D9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x4F1 PUSH3 0x4E8 DUP6 PUSH3 0x38F JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x483 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x516 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x4F9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x530 DUP4 DUP4 PUSH3 0x505 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x54B DUP3 PUSH3 0x312 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x567 JUMPI PUSH3 0x566 PUSH3 0xE7 JUMP JUMPDEST JUMPDEST PUSH3 0x573 DUP3 SLOAD PUSH3 0x349 JUMP JUMPDEST PUSH3 0x580 DUP3 DUP3 DUP6 PUSH3 0x4A9 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x5B6 JUMPI PUSH0 DUP5 ISZERO PUSH3 0x5A1 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x5AD DUP6 DUP3 PUSH3 0x523 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x61C JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x5C6 DUP7 PUSH3 0x37D JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x5EF 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 0x5C8 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x60F JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x60B PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x505 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 PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH3 0x65D DUP3 PUSH3 0x243 JUMP JUMPDEST SWAP2 POP PUSH3 0x66A DUP4 PUSH3 0x243 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH3 0x685 JUMPI PUSH3 0x684 PUSH3 0x624 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEA7 DUP1 PUSH3 0x699 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x313CE567 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x237 JUMPI DUP1 PUSH4 0xD45E09C1 EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x27D JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x23E3FBD5 EQ PUSH2 0x16B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x964 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xEF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEA SWAP2 SWAP1 PUSH2 0xA15 JUMP JUMPDEST PUSH2 0x344 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFC SWAP2 SWAP1 PUSH2 0xA6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x110 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x119 PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x126 SWAP2 SWAP1 PUSH2 0xA95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0xAAE JUMP JUMPDEST PUSH2 0x409 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0xA6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x176 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x191 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xAFE JUMP JUMPDEST PUSH2 0x569 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19E SWAP2 SWAP1 PUSH2 0xA95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB PUSH2 0x57E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0xA95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0xAFE JUMP JUMPDEST PUSH2 0x584 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x204 SWAP2 SWAP1 PUSH2 0xA95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x218 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x221 PUSH2 0x599 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0x964 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23F PUSH2 0x625 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x267 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x262 SWAP2 SWAP1 PUSH2 0xA15 JUMP JUMPDEST PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x274 SWAP2 SWAP1 PUSH2 0xA6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0xB29 JUMP JUMPDEST PUSH2 0x6E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0xA95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP1 SLOAD PUSH2 0x2C5 SWAP1 PUSH2 0xB94 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2F1 SWAP1 PUSH2 0xB94 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x33C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x313 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x33C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x31F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x5 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x6E11FB1B7F119E3F2FA29896EF5FDF8B8A2D0D4DF6FE90BA8668E7D8B2FFA25E CALLER DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x3F5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xBD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x5 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4BC SWAP1 PUSH2 0xC52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x54C SWAP2 SWAP1 PUSH2 0xC9D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x55E DUP5 DUP5 DUP5 PUSH2 0x706 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0x5A6 SWAP1 PUSH2 0xB94 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5D2 SWAP1 PUSH2 0xB94 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x61D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x5F4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x61D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x600 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x6 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH0 PUSH8 0x16345785D8A0000 PUSH2 0x3E8 CALLVALUE PUSH2 0x67F SWAP2 SWAP1 PUSH2 0xCD0 JUMP JUMPDEST PUSH2 0x689 SWAP2 SWAP1 PUSH2 0xD3E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x4 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6DC CALLER DUP5 DUP5 PUSH2 0x706 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP2 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD LT ISZERO PUSH2 0x786 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x77D SWAP1 PUSH2 0xDB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7F4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7EB SWAP1 PUSH2 0xE20 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x840 SWAP2 SWAP1 PUSH2 0xC9D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x4 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x893 SWAP2 SWAP1 PUSH2 0xE3E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x8CD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xBD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x911 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x8F6 JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x936 DUP3 PUSH2 0x8DA JUMP JUMPDEST PUSH2 0x940 DUP2 DUP6 PUSH2 0x8E4 JUMP JUMPDEST SWAP4 POP PUSH2 0x950 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x8F4 JUMP JUMPDEST PUSH2 0x959 DUP2 PUSH2 0x91C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x97C DUP2 DUP5 PUSH2 0x92C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x9B1 DUP3 PUSH2 0x988 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C1 DUP2 PUSH2 0x9A7 JUMP JUMPDEST DUP2 EQ PUSH2 0x9CB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9DC DUP2 PUSH2 0x9B8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9F4 DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP2 EQ PUSH2 0x9FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA0F DUP2 PUSH2 0x9EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA2B JUMPI PUSH2 0xA2A PUSH2 0x984 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xA38 DUP6 DUP3 DUP7 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xA49 DUP6 DUP3 DUP7 ADD PUSH2 0xA01 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA67 DUP2 PUSH2 0xA53 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA80 PUSH0 DUP4 ADD DUP5 PUSH2 0xA5E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA8F DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAA8 PUSH0 DUP4 ADD DUP5 PUSH2 0xA86 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xAC5 JUMPI PUSH2 0xAC4 PUSH2 0x984 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xAD2 DUP7 DUP3 DUP8 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xAE3 DUP7 DUP3 DUP8 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xAF4 DUP7 DUP3 DUP8 ADD PUSH2 0xA01 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB13 JUMPI PUSH2 0xB12 PUSH2 0x984 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB20 DUP5 DUP3 DUP6 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB3F JUMPI PUSH2 0xB3E PUSH2 0x984 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB4C DUP6 DUP3 DUP7 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB5D DUP6 DUP3 DUP7 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xBAB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xBBE JUMPI PUSH2 0xBBD PUSH2 0xB67 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBCD DUP2 PUSH2 0x9A7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xBE6 PUSH0 DUP4 ADD DUP7 PUSH2 0xBC4 JUMP JUMPDEST PUSH2 0xBF3 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xBC4 JUMP JUMPDEST PUSH2 0xC00 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xA86 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E7420616C6C6F77616E636500000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xC3C PUSH1 0x16 DUP4 PUSH2 0x8E4 JUMP JUMPDEST SWAP2 POP PUSH2 0xC47 DUP3 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xC69 DUP2 PUSH2 0xC30 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xCA7 DUP3 PUSH2 0x9E2 JUMP JUMPDEST SWAP2 POP PUSH2 0xCB2 DUP4 PUSH2 0x9E2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0xCCA JUMPI PUSH2 0xCC9 PUSH2 0xC70 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCDA DUP3 PUSH2 0x9E2 JUMP JUMPDEST SWAP2 POP PUSH2 0xCE5 DUP4 PUSH2 0x9E2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xCF3 DUP2 PUSH2 0x9E2 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xD0A JUMPI PUSH2 0xD09 PUSH2 0xC70 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xD48 DUP3 PUSH2 0x9E2 JUMP JUMPDEST SWAP2 POP PUSH2 0xD53 DUP4 PUSH2 0x9E2 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD63 JUMPI PUSH2 0xD62 PUSH2 0xD11 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E742062616C616E6365000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xDA2 PUSH1 0x14 DUP4 PUSH2 0x8E4 JUMP JUMPDEST SWAP2 POP PUSH2 0xDAD DUP3 PUSH2 0xD6E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xDCF DUP2 PUSH2 0xD96 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4465616420616464726573730000000000000000000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xE0A PUSH1 0xC DUP4 PUSH2 0x8E4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE15 DUP3 PUSH2 0xDD6 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xE37 DUP2 PUSH2 0xDFE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE48 DUP3 PUSH2 0x9E2 JUMP JUMPDEST SWAP2 POP PUSH2 0xE53 DUP4 PUSH2 0x9E2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xE6B JUMPI PUSH2 0xE6A PUSH2 0xC70 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP8 0xD3 0xF9 0xEA 0xD2 0xB5 TSTORE 0xFC 0xE7 0xCB XOR PUSH0 SWAP11 0x23 0xA7 CALLVALUE SWAP6 0x2C 0xCA CODECOPY 0x1F GASPRICE MSTORE8 PUSH2 0xAE7A LOG1 0xA5 0xEF 0xC MCOPY KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ",
"sourceMap": "57:2125:0:-:0;;;461:243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;585:5;578:4;:12;;;;;;:::i;:::-;;609:7;600:6;:16;;;;;;:::i;:::-;;650:11;626:9;:21;636:10;626:21;;;;;;;;;;;;;;;:35;;;;686:11;671;;:26;;;;;;;:::i;:::-;;;;;;;;461:243;;;57:2125;;7:75:1;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:77::-;2714:7;2743:5;2732:16;;2677:77;;;:::o;2760:122::-;2833:24;2851:5;2833:24;:::i;:::-;2826:5;2823:35;2813:63;;2872:1;2869;2862:12;2813:63;2760:122;:::o;2888:143::-;2945:5;2976:6;2970:13;2961:22;;2992:33;3019:5;2992:33;:::i;:::-;2888:143;;;;:::o;3037:1009::-;3145:6;3153;3161;3210:2;3198:9;3189:7;3185:23;3181:32;3178:119;;;3216:79;;:::i;:::-;3178:119;3357:1;3346:9;3342:17;3336:24;3387:18;3379:6;3376:30;3373:117;;;3409:79;;:::i;:::-;3373:117;3514:74;3580:7;3571:6;3560:9;3556:22;3514:74;:::i;:::-;3504:84;;3307:291;3658:2;3647:9;3643:18;3637:25;3689:18;3681:6;3678:30;3675:117;;;3711:79;;:::i;:::-;3675:117;3816:74;3882:7;3873:6;3862:9;3858:22;3816:74;:::i;:::-;3806:84;;3608:292;3939:2;3965:64;4021:7;4012:6;4001:9;3997:22;3965:64;:::i;:::-;3955:74;;3910:129;3037:1009;;;;;:::o;4052:99::-;4104:6;4138:5;4132:12;4122:22;;4052:99;;;:::o;4157:180::-;4205:77;4202:1;4195:88;4302:4;4299:1;4292:15;4326:4;4323:1;4316:15;4343:320;4387:6;4424:1;4418:4;4414:12;4404:22;;4471:1;4465:4;4461:12;4492:18;4482:81;;4548:4;4540:6;4536:17;4526:27;;4482:81;4610:2;4602:6;4599:14;4579:18;4576:38;4573:84;;4629:18;;:::i;:::-;4573:84;4394:269;4343:320;;;:::o;4669:141::-;4718:4;4741:3;4733:11;;4764:3;4761:1;4754:14;4798:4;4795:1;4785:18;4777:26;;4669:141;;;:::o;4816:93::-;4853:6;4900:2;4895;4888:5;4884:14;4880:23;4870:33;;4816:93;;;:::o;4915:107::-;4959:8;5009:5;5003:4;4999:16;4978:37;;4915:107;;;;:::o;5028:393::-;5097:6;5147:1;5135:10;5131:18;5170:97;5200:66;5189:9;5170:97;:::i;:::-;5288:39;5318:8;5307:9;5288:39;:::i;:::-;5276:51;;5360:4;5356:9;5349:5;5345:21;5336:30;;5409:4;5399:8;5395:19;5388:5;5385:30;5375:40;;5104:317;;5028:393;;;;;:::o;5427:60::-;5455:3;5476:5;5469:12;;5427:60;;;:::o;5493:142::-;5543:9;5576:53;5594:34;5603:24;5621:5;5603:24;:::i;:::-;5594:34;:::i;:::-;5576:53;:::i;:::-;5563:66;;5493:142;;;:::o;5641:75::-;5684:3;5705:5;5698:12;;5641:75;;;:::o;5722:269::-;5832:39;5863:7;5832:39;:::i;:::-;5893:91;5942:41;5966:16;5942:41;:::i;:::-;5934:6;5927:4;5921:11;5893:91;:::i;:::-;5887:4;5880:105;5798:193;5722:269;;;:::o;5997:73::-;6042:3;5997:73;:::o;6076:189::-;6153:32;;:::i;:::-;6194:65;6252:6;6244;6238:4;6194:65;:::i;:::-;6129:136;6076:189;;:::o;6271:186::-;6331:120;6348:3;6341:5;6338:14;6331:120;;;6402:39;6439:1;6432:5;6402:39;:::i;:::-;6375:1;6368:5;6364:13;6355:22;;6331:120;;;6271:186;;:::o;6463:543::-;6564:2;6559:3;6556:11;6553:446;;;6598:38;6630:5;6598:38;:::i;:::-;6682:29;6700:10;6682:29;:::i;:::-;6672:8;6668:44;6865:2;6853:10;6850:18;6847:49;;;6886:8;6871:23;;6847:49;6909:80;6965:22;6983:3;6965:22;:::i;:::-;6955:8;6951:37;6938:11;6909:80;:::i;:::-;6568:431;;6553:446;6463:543;;;:::o;7012:117::-;7066:8;7116:5;7110:4;7106:16;7085:37;;7012:117;;;;:::o;7135:169::-;7179:6;7212:51;7260:1;7256:6;7248:5;7245:1;7241:13;7212:51;:::i;:::-;7208:56;7293:4;7287;7283:15;7273:25;;7186:118;7135:169;;;;:::o;7309:295::-;7385:4;7531:29;7556:3;7550:4;7531:29;:::i;:::-;7523:37;;7593:3;7590:1;7586:11;7580:4;7577:21;7569:29;;7309:295;;;;:::o;7609:1395::-;7726:37;7759:3;7726:37;:::i;:::-;7828:18;7820:6;7817:30;7814:56;;;7850:18;;:::i;:::-;7814:56;7894:38;7926:4;7920:11;7894:38;:::i;:::-;7979:67;8039:6;8031;8025:4;7979:67;:::i;:::-;8073:1;8097:4;8084:17;;8129:2;8121:6;8118:14;8146:1;8141:618;;;;8803:1;8820:6;8817:77;;;8869:9;8864:3;8860:19;8854:26;8845:35;;8817:77;8920:67;8980:6;8973:5;8920:67;:::i;:::-;8914:4;8907:81;8776:222;8111:887;;8141:618;8193:4;8189:9;8181:6;8177:22;8227:37;8259:4;8227:37;:::i;:::-;8286:1;8300:208;8314:7;8311:1;8308:14;8300:208;;;8393:9;8388:3;8384:19;8378:26;8370:6;8363:42;8444:1;8436:6;8432:14;8422:24;;8491:2;8480:9;8476:18;8463:31;;8337:4;8334:1;8330:12;8325:17;;8300:208;;;8536:6;8527:7;8524:19;8521:179;;;8594:9;8589:3;8585:19;8579:26;8637:48;8679:4;8671:6;8667:17;8656:9;8637:48;:::i;:::-;8629:6;8622:64;8544:156;8521:179;8746:1;8742;8734:6;8730:14;8726:22;8720:4;8713:36;8148:611;;;8111:887;;7701:1303;;;7609:1395;;:::o;9010:180::-;9058:77;9055:1;9048:88;9155:4;9152:1;9145:15;9179:4;9176:1;9169:15;9196:191;9236:3;9255:20;9273:1;9255:20;:::i;:::-;9250:25;;9289:20;9307:1;9289:20;:::i;:::-;9284:25;;9332:1;9329;9325:9;9318:16;;9353:3;9350:1;9347:10;9344:36;;;9360:18;;:::i;:::-;9344:36;9196:191;;;;:::o;57:2125:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@allowance_19": {
"entryPoint": 1766,
"id": 19,
"parameterSlots": 0,
"returnSlots": 0
},
"@approve_196": {
"entryPoint": 836,
"id": 196,
"parameterSlots": 2,
"returnSlots": 1
},
"@balanceOf_13": {
"entryPoint": 1412,
"id": 13,
"parameterSlots": 0,
"returnSlots": 0
},
"@canTransfer_121": {
"entryPoint": 1744,
"id": 121,
"parameterSlots": 2,
"returnSlots": 1
},
"@decimals_9": {
"entryPoint": 1406,
"id": 9,
"parameterSlots": 0,
"returnSlots": 0
},
"@depositOf_23": {
"entryPoint": 1385,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@deposit_102": {
"entryPoint": 1573,
"id": 102,
"parameterSlots": 0,
"returnSlots": 0
},
"@name_3": {
"entryPoint": 697,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@symbol_5": {
"entryPoint": 1433,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@totalSupply_7": {
"entryPoint": 1027,
"id": 7,
"parameterSlots": 0,
"returnSlots": 0
},
"@transferFrom_237": {
"entryPoint": 1033,
"id": 237,
"parameterSlots": 3,
"returnSlots": 1
},
"@transfer_168": {
"entryPoint": 1798,
"id": 168,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 2510,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 2561,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 2814,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 2857,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_uint256": {
"entryPoint": 2734,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 2581,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 3012,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 2654,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 2348,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3120,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3478,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3582,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 2694,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 3027,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 2669,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 2404,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3154,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3512,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3616,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 2709,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 2266,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 2276,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 3646,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 3390,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 3280,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 3229,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 2471,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 2643,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 2440,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 2530,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 2292,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 2964,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 3184,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x12": {
"entryPoint": 3345,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 2919,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 2436,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 2332,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"store_literal_in_memory_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc": {
"entryPoint": 3080,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5": {
"entryPoint": 3438,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec": {
"entryPoint": 3542,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 2488,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 2539,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:10608:1",
"nodeType": "YulBlock",
"src": "0:10608:1",
"statements": [
{
"body": {
"nativeSrc": "66:40:1",
"nodeType": "YulBlock",
"src": "66:40:1",
"statements": [
{
"nativeSrc": "77:22:1",
"nodeType": "YulAssignment",
"src": "77:22:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "93:5:1",
"nodeType": "YulIdentifier",
"src": "93:5:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "87:5:1",
"nodeType": "YulIdentifier",
"src": "87:5:1"
},
"nativeSrc": "87:12:1",
"nodeType": "YulFunctionCall",
"src": "87:12:1"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "77:6:1",
"nodeType": "YulIdentifier",
"src": "77:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "7:99:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "49:5:1",
"nodeType": "YulTypedName",
"src": "49:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "59:6:1",
"nodeType": "YulTypedName",
"src": "59:6:1",
"type": ""
}
],
"src": "7:99:1"
},
{
"body": {
"nativeSrc": "208:73:1",
"nodeType": "YulBlock",
"src": "208:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "225:3:1",
"nodeType": "YulIdentifier",
"src": "225:3:1"
},
{
"name": "length",
"nativeSrc": "230:6:1",
"nodeType": "YulIdentifier",
"src": "230:6:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "218:6:1",
"nodeType": "YulIdentifier",
"src": "218:6:1"
},
"nativeSrc": "218:19:1",
"nodeType": "YulFunctionCall",
"src": "218:19:1"
},
"nativeSrc": "218:19:1",
"nodeType": "YulExpressionStatement",
"src": "218:19:1"
},
{
"nativeSrc": "246:29:1",
"nodeType": "YulAssignment",
"src": "246:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "265:3:1",
"nodeType": "YulIdentifier",
"src": "265:3:1"
},
{
"kind": "number",
"nativeSrc": "270:4:1",
"nodeType": "YulLiteral",
"src": "270:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "261:3:1",
"nodeType": "YulIdentifier",
"src": "261:3:1"
},
"nativeSrc": "261:14:1",
"nodeType": "YulFunctionCall",
"src": "261:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "246:11:1",
"nodeType": "YulIdentifier",
"src": "246:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "112:169:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "180:3:1",
"nodeType": "YulTypedName",
"src": "180:3:1",
"type": ""
},
{
"name": "length",
"nativeSrc": "185:6:1",
"nodeType": "YulTypedName",
"src": "185:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "196:11:1",
"nodeType": "YulTypedName",
"src": "196:11:1",
"type": ""
}
],
"src": "112:169:1"
},
{
"body": {
"nativeSrc": "349:184:1",
"nodeType": "YulBlock",
"src": "349:184:1",
"statements": [
{
"nativeSrc": "359:10:1",
"nodeType": "YulVariableDeclaration",
"src": "359:10:1",
"value": {
"kind": "number",
"nativeSrc": "368:1:1",
"nodeType": "YulLiteral",
"src": "368:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "363:1:1",
"nodeType": "YulTypedName",
"src": "363:1:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "428:63:1",
"nodeType": "YulBlock",
"src": "428:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "453:3:1",
"nodeType": "YulIdentifier",
"src": "453:3:1"
},
{
"name": "i",
"nativeSrc": "458:1:1",
"nodeType": "YulIdentifier",
"src": "458:1:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "449:3:1",
"nodeType": "YulIdentifier",
"src": "449:3:1"
},
"nativeSrc": "449:11:1",
"nodeType": "YulFunctionCall",
"src": "449:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "472:3:1",
"nodeType": "YulIdentifier",
"src": "472:3:1"
},
{
"name": "i",
"nativeSrc": "477:1:1",
"nodeType": "YulIdentifier",
"src": "477:1:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "468:3:1",
"nodeType": "YulIdentifier",
"src": "468:3:1"
},
"nativeSrc": "468:11:1",
"nodeType": "YulFunctionCall",
"src": "468:11:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "462:5:1",
"nodeType": "YulIdentifier",
"src": "462:5:1"
},
"nativeSrc": "462:18:1",
"nodeType": "YulFunctionCall",
"src": "462:18:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "442:6:1",
"nodeType": "YulIdentifier",
"src": "442:6:1"
},
"nativeSrc": "442:39:1",
"nodeType": "YulFunctionCall",
"src": "442:39:1"
},
"nativeSrc": "442:39:1",
"nodeType": "YulExpressionStatement",
"src": "442:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "389:1:1",
"nodeType": "YulIdentifier",
"src": "389:1:1"
},
{
"name": "length",
"nativeSrc": "392:6:1",
"nodeType": "YulIdentifier",
"src": "392:6:1"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "386:2:1",
"nodeType": "YulIdentifier",
"src": "386:2:1"
},
"nativeSrc": "386:13:1",
"nodeType": "YulFunctionCall",
"src": "386:13:1"
},
"nativeSrc": "378:113:1",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "400:19:1",
"nodeType": "YulBlock",
"src": "400:19:1",
"statements": [
{
"nativeSrc": "402:15:1",
"nodeType": "YulAssignment",
"src": "402:15:1",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "411:1:1",
"nodeType": "YulIdentifier",
"src": "411:1:1"
},
{
"kind": "number",
"nativeSrc": "414:2:1",
"nodeType": "YulLiteral",
"src": "414:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "407:3:1",
"nodeType": "YulIdentifier",
"src": "407:3:1"
},
"nativeSrc": "407:10:1",
"nodeType": "YulFunctionCall",
"src": "407:10:1"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "402:1:1",
"nodeType": "YulIdentifier",
"src": "402:1:1"
}
]
}
]
},
"pre": {
"nativeSrc": "382:3:1",
"nodeType": "YulBlock",
"src": "382:3:1",
"statements": []
},
"src": "378:113:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "511:3:1",
"nodeType": "YulIdentifier",
"src": "511:3:1"
},
{
"name": "length",
"nativeSrc": "516:6:1",
"nodeType": "YulIdentifier",
"src": "516:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "507:3:1",
"nodeType": "YulIdentifier",
"src": "507:3:1"
},
"nativeSrc": "507:16:1",
"nodeType": "YulFunctionCall",
"src": "507:16:1"
},
{
"kind": "number",
"nativeSrc": "525:1:1",
"nodeType": "YulLiteral",
"src": "525:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "500:6:1",
"nodeType": "YulIdentifier",
"src": "500:6:1"
},
"nativeSrc": "500:27:1",
"nodeType": "YulFunctionCall",
"src": "500:27:1"
},
"nativeSrc": "500:27:1",
"nodeType": "YulExpressionStatement",
"src": "500:27:1"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "287:246:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "331:3:1",
"nodeType": "YulTypedName",
"src": "331:3:1",
"type": ""
},
{
"name": "dst",
"nativeSrc": "336:3:1",
"nodeType": "YulTypedName",
"src": "336:3:1",
"type": ""
},
{
"name": "length",
"nativeSrc": "341:6:1",
"nodeType": "YulTypedName",
"src": "341:6:1",
"type": ""
}
],
"src": "287:246:1"
},
{
"body": {
"nativeSrc": "587:54:1",
"nodeType": "YulBlock",
"src": "587:54:1",
"statements": [
{
"nativeSrc": "597:38:1",
"nodeType": "YulAssignment",
"src": "597:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "615:5:1",
"nodeType": "YulIdentifier",
"src": "615:5:1"
},
{
"kind": "number",
"nativeSrc": "622:2:1",
"nodeType": "YulLiteral",
"src": "622:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "611:3:1",
"nodeType": "YulIdentifier",
"src": "611:3:1"
},
"nativeSrc": "611:14:1",
"nodeType": "YulFunctionCall",
"src": "611:14:1"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "631:2:1",
"nodeType": "YulLiteral",
"src": "631:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "627:3:1",
"nodeType": "YulIdentifier",
"src": "627:3:1"
},
"nativeSrc": "627:7:1",
"nodeType": "YulFunctionCall",
"src": "627:7:1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "607:3:1",
"nodeType": "YulIdentifier",
"src": "607:3:1"
},
"nativeSrc": "607:28:1",
"nodeType": "YulFunctionCall",
"src": "607:28:1"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "597:6:1",
"nodeType": "YulIdentifier",
"src": "597:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "539:102:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "570:5:1",
"nodeType": "YulTypedName",
"src": "570:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "580:6:1",
"nodeType": "YulTypedName",
"src": "580:6:1",
"type": ""
}
],
"src": "539:102:1"
},
{
"body": {
"nativeSrc": "739:285:1",
"nodeType": "YulBlock",
"src": "739:285:1",
"statements": [
{
"nativeSrc": "749:53:1",
"nodeType": "YulVariableDeclaration",
"src": "749:53:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "796:5:1",
"nodeType": "YulIdentifier",
"src": "796:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "763:32:1",
"nodeType": "YulIdentifier",
"src": "763:32:1"
},
"nativeSrc": "763:39:1",
"nodeType": "YulFunctionCall",
"src": "763:39:1"
},
"variables": [
{
"name": "length",
"nativeSrc": "753:6:1",
"nodeType": "YulTypedName",
"src": "753:6:1",
"type": ""
}
]
},
{
"nativeSrc": "811:78:1",
"nodeType": "YulAssignment",
"src": "811:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "877:3:1",
"nodeType": "YulIdentifier",
"src": "877:3:1"
},
{
"name": "length",
"nativeSrc": "882:6:1",
"nodeType": "YulIdentifier",
"src": "882:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "818:58:1",
"nodeType": "YulIdentifier",
"src": "818:58:1"
},
"nativeSrc": "818:71:1",
"nodeType": "YulFunctionCall",
"src": "818:71:1"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "811:3:1",
"nodeType": "YulIdentifier",
"src": "811:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "937:5:1",
"nodeType": "YulIdentifier",
"src": "937:5:1"
},
{
"kind": "number",
"nativeSrc": "944:4:1",
"nodeType": "YulLiteral",
"src": "944:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "933:3:1",
"nodeType": "YulIdentifier",
"src": "933:3:1"
},
"nativeSrc": "933:16:1",
"nodeType": "YulFunctionCall",
"src": "933:16:1"
},
{
"name": "pos",
"nativeSrc": "951:3:1",
"nodeType": "YulIdentifier",
"src": "951:3:1"
},
{
"name": "length",
"nativeSrc": "956:6:1",
"nodeType": "YulIdentifier",
"src": "956:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "898:34:1",
"nodeType": "YulIdentifier",
"src": "898:34:1"
},
"nativeSrc": "898:65:1",
"nodeType": "YulFunctionCall",
"src": "898:65:1"
},
"nativeSrc": "898:65:1",
"nodeType": "YulExpressionStatement",
"src": "898:65:1"
},
{
"nativeSrc": "972:46:1",
"nodeType": "YulAssignment",
"src": "972:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "983:3:1",
"nodeType": "YulIdentifier",
"src": "983:3:1"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "1010:6:1",
"nodeType": "YulIdentifier",
"src": "1010:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "988:21:1",
"nodeType": "YulIdentifier",
"src": "988:21:1"
},
"nativeSrc": "988:29:1",
"nodeType": "YulFunctionCall",
"src": "988:29:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "979:3:1",
"nodeType": "YulIdentifier",
"src": "979:3:1"
},
"nativeSrc": "979:39:1",
"nodeType": "YulFunctionCall",
"src": "979:39:1"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "972:3:1",
"nodeType": "YulIdentifier",
"src": "972:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "647:377:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "720:5:1",
"nodeType": "YulTypedName",
"src": "720:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "727:3:1",
"nodeType": "YulTypedName",
"src": "727:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "735:3:1",
"nodeType": "YulTypedName",
"src": "735:3:1",
"type": ""
}
],
"src": "647:377:1"
},
{
"body": {
"nativeSrc": "1148:195:1",
"nodeType": "YulBlock",
"src": "1148:195:1",
"statements": [
{
"nativeSrc": "1158:26:1",
"nodeType": "YulAssignment",
"src": "1158:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1170:9:1",
"nodeType": "YulIdentifier",
"src": "1170:9:1"
},
{
"kind": "number",
"nativeSrc": "1181:2:1",
"nodeType": "YulLiteral",
"src": "1181:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1166:3:1",
"nodeType": "YulIdentifier",
"src": "1166:3:1"
},
"nativeSrc": "1166:18:1",
"nodeType": "YulFunctionCall",
"src": "1166:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1158:4:1",
"nodeType": "YulIdentifier",
"src": "1158:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1205:9:1",
"nodeType": "YulIdentifier",
"src": "1205:9:1"
},
{
"kind": "number",
"nativeSrc": "1216:1:1",
"nodeType": "YulLiteral",
"src": "1216:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1201:3:1",
"nodeType": "YulIdentifier",
"src": "1201:3:1"
},
"nativeSrc": "1201:17:1",
"nodeType": "YulFunctionCall",
"src": "1201:17:1"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "1224:4:1",
"nodeType": "YulIdentifier",
"src": "1224:4:1"
},
{
"name": "headStart",
"nativeSrc": "1230:9:1",
"nodeType": "YulIdentifier",
"src": "1230:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1220:3:1",
"nodeType": "YulIdentifier",
"src": "1220:3:1"
},
"nativeSrc": "1220:20:1",
"nodeType": "YulFunctionCall",
"src": "1220:20:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1194:6:1",
"nodeType": "YulIdentifier",
"src": "1194:6:1"
},
"nativeSrc": "1194:47:1",
"nodeType": "YulFunctionCall",
"src": "1194:47:1"
},
"nativeSrc": "1194:47:1",
"nodeType": "YulExpressionStatement",
"src": "1194:47:1"
},
{
"nativeSrc": "1250:86:1",
"nodeType": "YulAssignment",
"src": "1250:86:1",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "1322:6:1",
"nodeType": "YulIdentifier",
"src": "1322:6:1"
},
{
"name": "tail",
"nativeSrc": "1331:4:1",
"nodeType": "YulIdentifier",
"src": "1331:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "1258:63:1",
"nodeType": "YulIdentifier",
"src": "1258:63:1"
},
"nativeSrc": "1258:78:1",
"nodeType": "YulFunctionCall",
"src": "1258:78:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1250:4:1",
"nodeType": "YulIdentifier",
"src": "1250:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "1030:313:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1120:9:1",
"nodeType": "YulTypedName",
"src": "1120:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1132:6:1",
"nodeType": "YulTypedName",
"src": "1132:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1143:4:1",
"nodeType": "YulTypedName",
"src": "1143:4:1",
"type": ""
}
],
"src": "1030:313:1"
},
{
"body": {
"nativeSrc": "1389:35:1",
"nodeType": "YulBlock",
"src": "1389:35:1",
"statements": [
{
"nativeSrc": "1399:19:1",
"nodeType": "YulAssignment",
"src": "1399:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1415:2:1",
"nodeType": "YulLiteral",
"src": "1415:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "1409:5:1",
"nodeType": "YulIdentifier",
"src": "1409:5:1"
},
"nativeSrc": "1409:9:1",
"nodeType": "YulFunctionCall",
"src": "1409:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "1399:6:1",
"nodeType": "YulIdentifier",
"src": "1399:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "1349:75:1",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "1382:6:1",
"nodeType": "YulTypedName",
"src": "1382:6:1",
"type": ""
}
],
"src": "1349:75:1"
},
{
"body": {
"nativeSrc": "1519:28:1",
"nodeType": "YulBlock",
"src": "1519:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1536:1:1",
"nodeType": "YulLiteral",
"src": "1536:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1539:1:1",
"nodeType": "YulLiteral",
"src": "1539:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1529:6:1",
"nodeType": "YulIdentifier",
"src": "1529:6:1"
},
"nativeSrc": "1529:12:1",
"nodeType": "YulFunctionCall",
"src": "1529:12:1"
},
"nativeSrc": "1529:12:1",
"nodeType": "YulExpressionStatement",
"src": "1529:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "1430:117:1",
"nodeType": "YulFunctionDefinition",
"src": "1430:117:1"
},
{
"body": {
"nativeSrc": "1642:28:1",
"nodeType": "YulBlock",
"src": "1642:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1659:1:1",
"nodeType": "YulLiteral",
"src": "1659:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1662:1:1",
"nodeType": "YulLiteral",
"src": "1662:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1652:6:1",
"nodeType": "YulIdentifier",
"src": "1652:6:1"
},
"nativeSrc": "1652:12:1",
"nodeType": "YulFunctionCall",
"src": "1652:12:1"
},
"nativeSrc": "1652:12:1",
"nodeType": "YulExpressionStatement",
"src": "1652:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "1553:117:1",
"nodeType": "YulFunctionDefinition",
"src": "1553:117:1"
},
{
"body": {
"nativeSrc": "1721:81:1",
"nodeType": "YulBlock",
"src": "1721:81:1",
"statements": [
{
"nativeSrc": "1731:65:1",
"nodeType": "YulAssignment",
"src": "1731:65:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1746:5:1",
"nodeType": "YulIdentifier",
"src": "1746:5:1"
},
{
"kind": "number",
"nativeSrc": "1753:42:1",
"nodeType": "YulLiteral",
"src": "1753:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1742:3:1",
"nodeType": "YulIdentifier",
"src": "1742:3:1"
},
"nativeSrc": "1742:54:1",
"nodeType": "YulFunctionCall",
"src": "1742:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1731:7:1",
"nodeType": "YulIdentifier",
"src": "1731:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "1676:126:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1703:5:1",
"nodeType": "YulTypedName",
"src": "1703:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1713:7:1",
"nodeType": "YulTypedName",
"src": "1713:7:1",
"type": ""
}
],
"src": "1676:126:1"
},
{
"body": {
"nativeSrc": "1853:51:1",
"nodeType": "YulBlock",
"src": "1853:51:1",
"statements": [
{
"nativeSrc": "1863:35:1",
"nodeType": "YulAssignment",
"src": "1863:35:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1892:5:1",
"nodeType": "YulIdentifier",
"src": "1892:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "1874:17:1",
"nodeType": "YulIdentifier",
"src": "1874:17:1"
},
"nativeSrc": "1874:24:1",
"nodeType": "YulFunctionCall",
"src": "1874:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1863:7:1",
"nodeType": "YulIdentifier",
"src": "1863:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "1808:96:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1835:5:1",
"nodeType": "YulTypedName",
"src": "1835:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1845:7:1",
"nodeType": "YulTypedName",
"src": "1845:7:1",
"type": ""
}
],
"src": "1808:96:1"
},
{
"body": {
"nativeSrc": "1953:79:1",
"nodeType": "YulBlock",
"src": "1953:79:1",
"statements": [
{
"body": {
"nativeSrc": "2010:16:1",
"nodeType": "YulBlock",
"src": "2010:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2019:1:1",
"nodeType": "YulLiteral",
"src": "2019:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2022:1:1",
"nodeType": "YulLiteral",
"src": "2022:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2012:6:1",
"nodeType": "YulIdentifier",
"src": "2012:6:1"
},
"nativeSrc": "2012:12:1",
"nodeType": "YulFunctionCall",
"src": "2012:12:1"
},
"nativeSrc": "2012:12:1",
"nodeType": "YulExpressionStatement",
"src": "2012:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1976:5:1",
"nodeType": "YulIdentifier",
"src": "1976:5:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2001:5:1",
"nodeType": "YulIdentifier",
"src": "2001:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "1983:17:1",
"nodeType": "YulIdentifier",
"src": "1983:17:1"
},
"nativeSrc": "1983:24:1",
"nodeType": "YulFunctionCall",
"src": "1983:24:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "1973:2:1",
"nodeType": "YulIdentifier",
"src": "1973:2:1"
},
"nativeSrc": "1973:35:1",
"nodeType": "YulFunctionCall",
"src": "1973:35:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1966:6:1",
"nodeType": "YulIdentifier",
"src": "1966:6:1"
},
"nativeSrc": "1966:43:1",
"nodeType": "YulFunctionCall",
"src": "1966:43:1"
},
"nativeSrc": "1963:63:1",
"nodeType": "YulIf",
"src": "1963:63:1"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "1910:122:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1946:5:1",
"nodeType": "YulTypedName",
"src": "1946:5:1",
"type": ""
}
],
"src": "1910:122:1"
},
{
"body": {
"nativeSrc": "2090:87:1",
"nodeType": "YulBlock",
"src": "2090:87:1",
"statements": [
{
"nativeSrc": "2100:29:1",
"nodeType": "YulAssignment",
"src": "2100:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2122:6:1",
"nodeType": "YulIdentifier",
"src": "2122:6:1"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "2109:12:1",
"nodeType": "YulIdentifier",
"src": "2109:12:1"
},
"nativeSrc": "2109:20:1",
"nodeType": "YulFunctionCall",
"src": "2109:20:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2100:5:1",
"nodeType": "YulIdentifier",
"src": "2100:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2165:5:1",
"nodeType": "YulIdentifier",
"src": "2165:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "2138:26:1",
"nodeType": "YulIdentifier",
"src": "2138:26:1"
},
"nativeSrc": "2138:33:1",
"nodeType": "YulFunctionCall",
"src": "2138:33:1"
},
"nativeSrc": "2138:33:1",
"nodeType": "YulExpressionStatement",
"src": "2138:33:1"
}
]
},
"name": "abi_decode_t_address",
"nativeSrc": "2038:139:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2068:6:1",
"nodeType": "YulTypedName",
"src": "2068:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "2076:3:1",
"nodeType": "YulTypedName",
"src": "2076:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2084:5:1",
"nodeType": "YulTypedName",
"src": "2084:5:1",
"type": ""
}
],
"src": "2038:139:1"
},
{
"body": {
"nativeSrc": "2228:32:1",
"nodeType": "YulBlock",
"src": "2228:32:1",
"statements": [
{
"nativeSrc": "2238:16:1",
"nodeType": "YulAssignment",
"src": "2238:16:1",
"value": {
"name": "value",
"nativeSrc": "2249:5:1",
"nodeType": "YulIdentifier",
"src": "2249:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "2238:7:1",
"nodeType": "YulIdentifier",
"src": "2238:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "2183:77:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2210:5:1",
"nodeType": "YulTypedName",
"src": "2210:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "2220:7:1",
"nodeType": "YulTypedName",
"src": "2220:7:1",
"type": ""
}
],
"src": "2183:77:1"
},
{
"body": {
"nativeSrc": "2309:79:1",
"nodeType": "YulBlock",
"src": "2309:79:1",
"statements": [
{
"body": {
"nativeSrc": "2366:16:1",
"nodeType": "YulBlock",
"src": "2366:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2375:1:1",
"nodeType": "YulLiteral",
"src": "2375:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2378:1:1",
"nodeType": "YulLiteral",
"src": "2378:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2368:6:1",
"nodeType": "YulIdentifier",
"src": "2368:6:1"
},
"nativeSrc": "2368:12:1",
"nodeType": "YulFunctionCall",
"src": "2368:12:1"
},
"nativeSrc": "2368:12:1",
"nodeType": "YulExpressionStatement",
"src": "2368:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "2332:5:1",
"nodeType": "YulIdentifier",
"src": "2332:5:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2357:5:1",
"nodeType": "YulIdentifier",
"src": "2357:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2339:17:1",
"nodeType": "YulIdentifier",
"src": "2339:17:1"
},
"nativeSrc": "2339:24:1",
"nodeType": "YulFunctionCall",
"src": "2339:24:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "2329:2:1",
"nodeType": "YulIdentifier",
"src": "2329:2:1"
},
"nativeSrc": "2329:35:1",
"nodeType": "YulFunctionCall",
"src": "2329:35:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2322:6:1",
"nodeType": "YulIdentifier",
"src": "2322:6:1"
},
"nativeSrc": "2322:43:1",
"nodeType": "YulFunctionCall",
"src": "2322:43:1"
},
"nativeSrc": "2319:63:1",
"nodeType": "YulIf",
"src": "2319:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "2266:122:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2302:5:1",
"nodeType": "YulTypedName",
"src": "2302:5:1",
"type": ""
}
],
"src": "2266:122:1"
},
{
"body": {
"nativeSrc": "2446:87:1",
"nodeType": "YulBlock",
"src": "2446:87:1",
"statements": [
{
"nativeSrc": "2456:29:1",
"nodeType": "YulAssignment",
"src": "2456:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2478:6:1",
"nodeType": "YulIdentifier",
"src": "2478:6:1"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "2465:12:1",
"nodeType": "YulIdentifier",
"src": "2465:12:1"
},
"nativeSrc": "2465:20:1",
"nodeType": "YulFunctionCall",
"src": "2465:20:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2456:5:1",
"nodeType": "YulIdentifier",
"src": "2456:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2521:5:1",
"nodeType": "YulIdentifier",
"src": "2521:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "2494:26:1",
"nodeType": "YulIdentifier",
"src": "2494:26:1"
},
"nativeSrc": "2494:33:1",
"nodeType": "YulFunctionCall",
"src": "2494:33:1"
},
"nativeSrc": "2494:33:1",
"nodeType": "YulExpressionStatement",
"src": "2494:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nativeSrc": "2394:139:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2424:6:1",
"nodeType": "YulTypedName",
"src": "2424:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "2432:3:1",
"nodeType": "YulTypedName",
"src": "2432:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2440:5:1",
"nodeType": "YulTypedName",
"src": "2440:5:1",
"type": ""
}
],
"src": "2394:139:1"
},
{
"body": {
"nativeSrc": "2622:391:1",
"nodeType": "YulBlock",
"src": "2622:391:1",
"statements": [
{
"body": {
"nativeSrc": "2668:83:1",
"nodeType": "YulBlock",
"src": "2668:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "2670:77:1",
"nodeType": "YulIdentifier",
"src": "2670:77:1"
},
"nativeSrc": "2670:79:1",
"nodeType": "YulFunctionCall",
"src": "2670:79:1"
},
"nativeSrc": "2670:79:1",
"nodeType": "YulExpressionStatement",
"src": "2670:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "2643:7:1",
"nodeType": "YulIdentifier",
"src": "2643:7:1"
},
{
"name": "headStart",
"nativeSrc": "2652:9:1",
"nodeType": "YulIdentifier",
"src": "2652:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "2639:3:1",
"nodeType": "YulIdentifier",
"src": "2639:3:1"
},
"nativeSrc": "2639:23:1",
"nodeType": "YulFunctionCall",
"src": "2639:23:1"
},
{
"kind": "number",
"nativeSrc": "2664:2:1",
"nodeType": "YulLiteral",
"src": "2664:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "2635:3:1",
"nodeType": "YulIdentifier",
"src": "2635:3:1"
},
"nativeSrc": "2635:32:1",
"nodeType": "YulFunctionCall",
"src": "2635:32:1"
},
"nativeSrc": "2632:119:1",
"nodeType": "YulIf",
"src": "2632:119:1"
},
{
"nativeSrc": "2761:117:1",
"nodeType": "YulBlock",
"src": "2761:117:1",
"statements": [
{
"nativeSrc": "2776:15:1",
"nodeType": "YulVariableDeclaration",
"src": "2776:15:1",
"value": {
"kind": "number",
"nativeSrc": "2790:1:1",
"nodeType": "YulLiteral",
"src": "2790:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2780:6:1",
"nodeType": "YulTypedName",
"src": "2780:6:1",
"type": ""
}
]
},
{
"nativeSrc": "2805:63:1",
"nodeType": "YulAssignment",
"src": "2805:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2840:9:1",
"nodeType": "YulIdentifier",
"src": "2840:9:1"
},
{
"name": "offset",
"nativeSrc": "2851:6:1",
"nodeType": "YulIdentifier",
"src": "2851:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2836:3:1",
"nodeType": "YulIdentifier",
"src": "2836:3:1"
},
"nativeSrc": "2836:22:1",
"nodeType": "YulFunctionCall",
"src": "2836:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "2860:7:1",
"nodeType": "YulIdentifier",
"src": "2860:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "2815:20:1",
"nodeType": "YulIdentifier",
"src": "2815:20:1"
},
"nativeSrc": "2815:53:1",
"nodeType": "YulFunctionCall",
"src": "2815:53:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "2805:6:1",
"nodeType": "YulIdentifier",
"src": "2805:6:1"
}
]
}
]
},
{
"nativeSrc": "2888:118:1",
"nodeType": "YulBlock",
"src": "2888:118:1",
"statements": [
{
"nativeSrc": "2903:16:1",
"nodeType": "YulVariableDeclaration",
"src": "2903:16:1",
"value": {
"kind": "number",
"nativeSrc": "2917:2:1",
"nodeType": "YulLiteral",
"src": "2917:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2907:6:1",
"nodeType": "YulTypedName",
"src": "2907:6:1",
"type": ""
}
]
},
{
"nativeSrc": "2933:63:1",
"nodeType": "YulAssignment",
"src": "2933:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2968:9:1",
"nodeType": "YulIdentifier",
"src": "2968:9:1"
},
{
"name": "offset",
"nativeSrc": "2979:6:1",
"nodeType": "YulIdentifier",
"src": "2979:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2964:3:1",
"nodeType": "YulIdentifier",
"src": "2964:3:1"
},
"nativeSrc": "2964:22:1",
"nodeType": "YulFunctionCall",
"src": "2964:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "2988:7:1",
"nodeType": "YulIdentifier",
"src": "2988:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "2943:20:1",
"nodeType": "YulIdentifier",
"src": "2943:20:1"
},
"nativeSrc": "2943:53:1",
"nodeType": "YulFunctionCall",
"src": "2943:53:1"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "2933:6:1",
"nodeType": "YulIdentifier",
"src": "2933:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nativeSrc": "2539:474:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "2584:9:1",
"nodeType": "YulTypedName",
"src": "2584:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "2595:7:1",
"nodeType": "YulTypedName",
"src": "2595:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "2607:6:1",
"nodeType": "YulTypedName",
"src": "2607:6:1",
"type": ""
},
{
"name": "value1",
"nativeSrc": "2615:6:1",
"nodeType": "YulTypedName",
"src": "2615:6:1",
"type": ""
}
],
"src": "2539:474:1"
},
{
"body": {
"nativeSrc": "3061:48:1",
"nodeType": "YulBlock",
"src": "3061:48:1",
"statements": [
{
"nativeSrc": "3071:32:1",
"nodeType": "YulAssignment",
"src": "3071:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "3096:5:1",
"nodeType": "YulIdentifier",
"src": "3096:5:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3089:6:1",
"nodeType": "YulIdentifier",
"src": "3089:6:1"
},
"nativeSrc": "3089:13:1",
"nodeType": "YulFunctionCall",
"src": "3089:13:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3082:6:1",
"nodeType": "YulIdentifier",
"src": "3082:6:1"
},
"nativeSrc": "3082:21:1",
"nodeType": "YulFunctionCall",
"src": "3082:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "3071:7:1",
"nodeType": "YulIdentifier",
"src": "3071:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nativeSrc": "3019:90:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3043:5:1",
"nodeType": "YulTypedName",
"src": "3043:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "3053:7:1",
"nodeType": "YulTypedName",
"src": "3053:7:1",
"type": ""
}
],
"src": "3019:90:1"
},
{
"body": {
"nativeSrc": "3174:50:1",
"nodeType": "YulBlock",
"src": "3174:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3191:3:1",
"nodeType": "YulIdentifier",
"src": "3191:3:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "3211:5:1",
"nodeType": "YulIdentifier",
"src": "3211:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "3196:14:1",
"nodeType": "YulIdentifier",
"src": "3196:14:1"
},
"nativeSrc": "3196:21:1",
"nodeType": "YulFunctionCall",
"src": "3196:21:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3184:6:1",
"nodeType": "YulIdentifier",
"src": "3184:6:1"
},
"nativeSrc": "3184:34:1",
"nodeType": "YulFunctionCall",
"src": "3184:34:1"
},
"nativeSrc": "3184:34:1",
"nodeType": "YulExpressionStatement",
"src": "3184:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "3115:109:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3162:5:1",
"nodeType": "YulTypedName",
"src": "3162:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3169:3:1",
"nodeType": "YulTypedName",
"src": "3169:3:1",
"type": ""
}
],
"src": "3115:109:1"
},
{
"body": {
"nativeSrc": "3322:118:1",
"nodeType": "YulBlock",
"src": "3322:118:1",
"statements": [
{
"nativeSrc": "3332:26:1",
"nodeType": "YulAssignment",
"src": "3332:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "3344:9:1",
"nodeType": "YulIdentifier",
"src": "3344:9:1"
},
{
"kind": "number",
"nativeSrc": "3355:2:1",
"nodeType": "YulLiteral",
"src": "3355:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3340:3:1",
"nodeType": "YulIdentifier",
"src": "3340:3:1"
},
"nativeSrc": "3340:18:1",
"nodeType": "YulFunctionCall",
"src": "3340:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "3332:4:1",
"nodeType": "YulIdentifier",
"src": "3332:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "3406:6:1",
"nodeType": "YulIdentifier",
"src": "3406:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3419:9:1",
"nodeType": "YulIdentifier",
"src": "3419:9:1"
},
{
"kind": "number",
"nativeSrc": "3430:1:1",
"nodeType": "YulLiteral",
"src": "3430:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3415:3:1",
"nodeType": "YulIdentifier",
"src": "3415:3:1"
},
"nativeSrc": "3415:17:1",
"nodeType": "YulFunctionCall",
"src": "3415:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "3368:37:1",
"nodeType": "YulIdentifier",
"src": "3368:37:1"
},
"nativeSrc": "3368:65:1",
"nodeType": "YulFunctionCall",
"src": "3368:65:1"
},
"nativeSrc": "3368:65:1",
"nodeType": "YulExpressionStatement",
"src": "3368:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nativeSrc": "3230:210:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3294:9:1",
"nodeType": "YulTypedName",
"src": "3294:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "3306:6:1",
"nodeType": "YulTypedName",
"src": "3306:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "3317:4:1",
"nodeType": "YulTypedName",
"src": "3317:4:1",
"type": ""
}
],
"src": "3230:210:1"
},
{
"body": {
"nativeSrc": "3511:53:1",
"nodeType": "YulBlock",
"src": "3511:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3528:3:1",
"nodeType": "YulIdentifier",
"src": "3528:3:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "3551:5:1",
"nodeType": "YulIdentifier",
"src": "3551:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "3533:17:1",
"nodeType": "YulIdentifier",
"src": "3533:17:1"
},
"nativeSrc": "3533:24:1",
"nodeType": "YulFunctionCall",
"src": "3533:24:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3521:6:1",
"nodeType": "YulIdentifier",
"src": "3521:6:1"
},
"nativeSrc": "3521:37:1",
"nodeType": "YulFunctionCall",
"src": "3521:37:1"
},
"nativeSrc": "3521:37:1",
"nodeType": "YulExpressionStatement",
"src": "3521:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "3446:118:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3499:5:1",
"nodeType": "YulTypedName",
"src": "3499:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3506:3:1",
"nodeType": "YulTypedName",
"src": "3506:3:1",
"type": ""
}
],
"src": "3446:118:1"
},
{
"body": {
"nativeSrc": "3668:124:1",
"nodeType": "YulBlock",
"src": "3668:124:1",
"statements": [
{
"nativeSrc": "3678:26:1",
"nodeType": "YulAssignment",
"src": "3678:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "3690:9:1",
"nodeType": "YulIdentifier",
"src": "3690:9:1"
},
{
"kind": "number",
"nativeSrc": "3701:2:1",
"nodeType": "YulLiteral",
"src": "3701:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3686:3:1",
"nodeType": "YulIdentifier",
"src": "3686:3:1"
},
"nativeSrc": "3686:18:1",
"nodeType": "YulFunctionCall",
"src": "3686:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "3678:4:1",
"nodeType": "YulIdentifier",
"src": "3678:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "3758:6:1",
"nodeType": "YulIdentifier",
"src": "3758:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3771:9:1",
"nodeType": "YulIdentifier",
"src": "3771:9:1"
},
{
"kind": "number",
"nativeSrc": "3782:1:1",
"nodeType": "YulLiteral",
"src": "3782:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3767:3:1",
"nodeType": "YulIdentifier",
"src": "3767:3:1"
},
"nativeSrc": "3767:17:1",
"nodeType": "YulFunctionCall",
"src": "3767:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "3714:43:1",
"nodeType": "YulIdentifier",
"src": "3714:43:1"
},
"nativeSrc": "3714:71:1",
"nodeType": "YulFunctionCall",
"src": "3714:71:1"
},
"nativeSrc": "3714:71:1",
"nodeType": "YulExpressionStatement",
"src": "3714:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "3570:222:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3640:9:1",
"nodeType": "YulTypedName",
"src": "3640:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "3652:6:1",
"nodeType": "YulTypedName",
"src": "3652:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "3663:4:1",
"nodeType": "YulTypedName",
"src": "3663:4:1",
"type": ""
}
],
"src": "3570:222:1"
},
{
"body": {
"nativeSrc": "3898:519:1",
"nodeType": "YulBlock",
"src": "3898:519:1",
"statements": [
{
"body": {
"nativeSrc": "3944:83:1",
"nodeType": "YulBlock",
"src": "3944:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "3946:77:1",
"nodeType": "YulIdentifier",
"src": "3946:77:1"
},
"nativeSrc": "3946:79:1",
"nodeType": "YulFunctionCall",
"src": "3946:79:1"
},
"nativeSrc": "3946:79:1",
"nodeType": "YulExpressionStatement",
"src": "3946:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "3919:7:1",
"nodeType": "YulIdentifier",
"src": "3919:7:1"
},
{
"name": "headStart",
"nativeSrc": "3928:9:1",
"nodeType": "YulIdentifier",
"src": "3928:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "3915:3:1",
"nodeType": "YulIdentifier",
"src": "3915:3:1"
},
"nativeSrc": "3915:23:1",
"nodeType": "YulFunctionCall",
"src": "3915:23:1"
},
{
"kind": "number",
"nativeSrc": "3940:2:1",
"nodeType": "YulLiteral",
"src": "3940:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "3911:3:1",
"nodeType": "YulIdentifier",
"src": "3911:3:1"
},
"nativeSrc": "3911:32:1",
"nodeType": "YulFunctionCall",
"src": "3911:32:1"
},
"nativeSrc": "3908:119:1",
"nodeType": "YulIf",
"src": "3908:119:1"
},
{
"nativeSrc": "4037:117:1",
"nodeType": "YulBlock",
"src": "4037:117:1",
"statements": [
{
"nativeSrc": "4052:15:1",
"nodeType": "YulVariableDeclaration",
"src": "4052:15:1",
"value": {
"kind": "number",
"nativeSrc": "4066:1:1",
"nodeType": "YulLiteral",
"src": "4066:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4056:6:1",
"nodeType": "YulTypedName",
"src": "4056:6:1",
"type": ""
}
]
},
{
"nativeSrc": "4081:63:1",
"nodeType": "YulAssignment",
"src": "4081:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4116:9:1",
"nodeType": "YulIdentifier",
"src": "4116:9:1"
},
{
"name": "offset",
"nativeSrc": "4127:6:1",
"nodeType": "YulIdentifier",
"src": "4127:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4112:3:1",
"nodeType": "YulIdentifier",
"src": "4112:3:1"
},
"nativeSrc": "4112:22:1",
"nodeType": "YulFunctionCall",
"src": "4112:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "4136:7:1",
"nodeType": "YulIdentifier",
"src": "4136:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4091:20:1",
"nodeType": "YulIdentifier",
"src": "4091:20:1"
},
"nativeSrc": "4091:53:1",
"nodeType": "YulFunctionCall",
"src": "4091:53:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "4081:6:1",
"nodeType": "YulIdentifier",
"src": "4081:6:1"
}
]
}
]
},
{
"nativeSrc": "4164:118:1",
"nodeType": "YulBlock",
"src": "4164:118:1",
"statements": [
{
"nativeSrc": "4179:16:1",
"nodeType": "YulVariableDeclaration",
"src": "4179:16:1",
"value": {
"kind": "number",
"nativeSrc": "4193:2:1",
"nodeType": "YulLiteral",
"src": "4193:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4183:6:1",
"nodeType": "YulTypedName",
"src": "4183:6:1",
"type": ""
}
]
},
{
"nativeSrc": "4209:63:1",
"nodeType": "YulAssignment",
"src": "4209:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4244:9:1",
"nodeType": "YulIdentifier",
"src": "4244:9:1"
},
{
"name": "offset",
"nativeSrc": "4255:6:1",
"nodeType": "YulIdentifier",
"src": "4255:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4240:3:1",
"nodeType": "YulIdentifier",
"src": "4240:3:1"
},
"nativeSrc": "4240:22:1",
"nodeType": "YulFunctionCall",
"src": "4240:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "4264:7:1",
"nodeType": "YulIdentifier",
"src": "4264:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4219:20:1",
"nodeType": "YulIdentifier",
"src": "4219:20:1"
},
"nativeSrc": "4219:53:1",
"nodeType": "YulFunctionCall",
"src": "4219:53:1"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "4209:6:1",
"nodeType": "YulIdentifier",
"src": "4209:6:1"
}
]
}
]
},
{
"nativeSrc": "4292:118:1",
"nodeType": "YulBlock",
"src": "4292:118:1",
"statements": [
{
"nativeSrc": "4307:16:1",
"nodeType": "YulVariableDeclaration",
"src": "4307:16:1",
"value": {
"kind": "number",
"nativeSrc": "4321:2:1",
"nodeType": "YulLiteral",
"src": "4321:2:1",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4311:6:1",
"nodeType": "YulTypedName",
"src": "4311:6:1",
"type": ""
}
]
},
{
"nativeSrc": "4337:63:1",
"nodeType": "YulAssignment",
"src": "4337:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4372:9:1",
"nodeType": "YulIdentifier",
"src": "4372:9:1"
},
{
"name": "offset",
"nativeSrc": "4383:6:1",
"nodeType": "YulIdentifier",
"src": "4383:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4368:3:1",
"nodeType": "YulIdentifier",
"src": "4368:3:1"
},
"nativeSrc": "4368:22:1",
"nodeType": "YulFunctionCall",
"src": "4368:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "4392:7:1",
"nodeType": "YulIdentifier",
"src": "4392:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "4347:20:1",
"nodeType": "YulIdentifier",
"src": "4347:20:1"
},
"nativeSrc": "4347:53:1",
"nodeType": "YulFunctionCall",
"src": "4347:53:1"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "4337:6:1",
"nodeType": "YulIdentifier",
"src": "4337:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256",
"nativeSrc": "3798:619:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3852:9:1",
"nodeType": "YulTypedName",
"src": "3852:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "3863:7:1",
"nodeType": "YulTypedName",
"src": "3863:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "3875:6:1",
"nodeType": "YulTypedName",
"src": "3875:6:1",
"type": ""
},
{
"name": "value1",
"nativeSrc": "3883:6:1",
"nodeType": "YulTypedName",
"src": "3883:6:1",
"type": ""
},
{
"name": "value2",
"nativeSrc": "3891:6:1",
"nodeType": "YulTypedName",
"src": "3891:6:1",
"type": ""
}
],
"src": "3798:619:1"
},
{
"body": {
"nativeSrc": "4489:263:1",
"nodeType": "YulBlock",
"src": "4489:263:1",
"statements": [
{
"body": {
"nativeSrc": "4535:83:1",
"nodeType": "YulBlock",
"src": "4535:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "4537:77:1",
"nodeType": "YulIdentifier",
"src": "4537:77:1"
},
"nativeSrc": "4537:79:1",
"nodeType": "YulFunctionCall",
"src": "4537:79:1"
},
"nativeSrc": "4537:79:1",
"nodeType": "YulExpressionStatement",
"src": "4537:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "4510:7:1",
"nodeType": "YulIdentifier",
"src": "4510:7:1"
},
{
"name": "headStart",
"nativeSrc": "4519:9:1",
"nodeType": "YulIdentifier",
"src": "4519:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "4506:3:1",
"nodeType": "YulIdentifier",
"src": "4506:3:1"
},
"nativeSrc": "4506:23:1",
"nodeType": "YulFunctionCall",
"src": "4506:23:1"
},
{
"kind": "number",
"nativeSrc": "4531:2:1",
"nodeType": "YulLiteral",
"src": "4531:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "4502:3:1",
"nodeType": "YulIdentifier",
"src": "4502:3:1"
},
"nativeSrc": "4502:32:1",
"nodeType": "YulFunctionCall",
"src": "4502:32:1"
},
"nativeSrc": "4499:119:1",
"nodeType": "YulIf",
"src": "4499:119:1"
},
{
"nativeSrc": "4628:117:1",
"nodeType": "YulBlock",
"src": "4628:117:1",
"statements": [
{
"nativeSrc": "4643:15:1",
"nodeType": "YulVariableDeclaration",
"src": "4643:15:1",
"value": {
"kind": "number",
"nativeSrc": "4657:1:1",
"nodeType": "YulLiteral",
"src": "4657:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4647:6:1",
"nodeType": "YulTypedName",
"src": "4647:6:1",
"type": ""
}
]
},
{
"nativeSrc": "4672:63:1",
"nodeType": "YulAssignment",
"src": "4672:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4707:9:1",
"nodeType": "YulIdentifier",
"src": "4707:9:1"
},
{
"name": "offset",
"nativeSrc": "4718:6:1",
"nodeType": "YulIdentifier",
"src": "4718:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4703:3:1",
"nodeType": "YulIdentifier",
"src": "4703:3:1"
},
"nativeSrc": "4703:22:1",
"nodeType": "YulFunctionCall",
"src": "4703:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "4727:7:1",
"nodeType": "YulIdentifier",
"src": "4727:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4682:20:1",
"nodeType": "YulIdentifier",
"src": "4682:20:1"
},
"nativeSrc": "4682:53:1",
"nodeType": "YulFunctionCall",
"src": "4682:53:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "4672:6:1",
"nodeType": "YulIdentifier",
"src": "4672:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nativeSrc": "4423:329:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "4459:9:1",
"nodeType": "YulTypedName",
"src": "4459:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "4470:7:1",
"nodeType": "YulTypedName",
"src": "4470:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "4482:6:1",
"nodeType": "YulTypedName",
"src": "4482:6:1",
"type": ""
}
],
"src": "4423:329:1"
},
{
"body": {
"nativeSrc": "4841:391:1",
"nodeType": "YulBlock",
"src": "4841:391:1",
"statements": [
{
"body": {
"nativeSrc": "4887:83:1",
"nodeType": "YulBlock",
"src": "4887:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "4889:77:1",
"nodeType": "YulIdentifier",
"src": "4889:77:1"
},
"nativeSrc": "4889:79:1",
"nodeType": "YulFunctionCall",
"src": "4889:79:1"
},
"nativeSrc": "4889:79:1",
"nodeType": "YulExpressionStatement",
"src": "4889:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "4862:7:1",
"nodeType": "YulIdentifier",
"src": "4862:7:1"
},
{
"name": "headStart",
"nativeSrc": "4871:9:1",
"nodeType": "YulIdentifier",
"src": "4871:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "4858:3:1",
"nodeType": "YulIdentifier",
"src": "4858:3:1"
},
"nativeSrc": "4858:23:1",
"nodeType": "YulFunctionCall",
"src": "4858:23:1"
},
{
"kind": "number",
"nativeSrc": "4883:2:1",
"nodeType": "YulLiteral",
"src": "4883:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "4854:3:1",
"nodeType": "YulIdentifier",
"src": "4854:3:1"
},
"nativeSrc": "4854:32:1",
"nodeType": "YulFunctionCall",
"src": "4854:32:1"
},
"nativeSrc": "4851:119:1",
"nodeType": "YulIf",
"src": "4851:119:1"
},
{
"nativeSrc": "4980:117:1",
"nodeType": "YulBlock",
"src": "4980:117:1",
"statements": [
{
"nativeSrc": "4995:15:1",
"nodeType": "YulVariableDeclaration",
"src": "4995:15:1",
"value": {
"kind": "number",
"nativeSrc": "5009:1:1",
"nodeType": "YulLiteral",
"src": "5009:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4999:6:1",
"nodeType": "YulTypedName",
"src": "4999:6:1",
"type": ""
}
]
},
{
"nativeSrc": "5024:63:1",
"nodeType": "YulAssignment",
"src": "5024:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5059:9:1",
"nodeType": "YulIdentifier",
"src": "5059:9:1"
},
{
"name": "offset",
"nativeSrc": "5070:6:1",
"nodeType": "YulIdentifier",
"src": "5070:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5055:3:1",
"nodeType": "YulIdentifier",
"src": "5055:3:1"
},
"nativeSrc": "5055:22:1",
"nodeType": "YulFunctionCall",
"src": "5055:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "5079:7:1",
"nodeType": "YulIdentifier",
"src": "5079:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "5034:20:1",
"nodeType": "YulIdentifier",
"src": "5034:20:1"
},
"nativeSrc": "5034:53:1",
"nodeType": "YulFunctionCall",
"src": "5034:53:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "5024:6:1",
"nodeType": "YulIdentifier",
"src": "5024:6:1"
}
]
}
]
},
{
"nativeSrc": "5107:118:1",
"nodeType": "YulBlock",
"src": "5107:118:1",
"statements": [
{
"nativeSrc": "5122:16:1",
"nodeType": "YulVariableDeclaration",
"src": "5122:16:1",
"value": {
"kind": "number",
"nativeSrc": "5136:2:1",
"nodeType": "YulLiteral",
"src": "5136:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5126:6:1",
"nodeType": "YulTypedName",
"src": "5126:6:1",
"type": ""
}
]
},
{
"nativeSrc": "5152:63:1",
"nodeType": "YulAssignment",
"src": "5152:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5187:9:1",
"nodeType": "YulIdentifier",
"src": "5187:9:1"
},
{
"name": "offset",
"nativeSrc": "5198:6:1",
"nodeType": "YulIdentifier",
"src": "5198:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5183:3:1",
"nodeType": "YulIdentifier",
"src": "5183:3:1"
},
"nativeSrc": "5183:22:1",
"nodeType": "YulFunctionCall",
"src": "5183:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "5207:7:1",
"nodeType": "YulIdentifier",
"src": "5207:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "5162:20:1",
"nodeType": "YulIdentifier",
"src": "5162:20:1"
},
"nativeSrc": "5162:53:1",
"nodeType": "YulFunctionCall",
"src": "5162:53:1"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "5152:6:1",
"nodeType": "YulIdentifier",
"src": "5152:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nativeSrc": "4758:474:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "4803:9:1",
"nodeType": "YulTypedName",
"src": "4803:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "4814:7:1",
"nodeType": "YulTypedName",
"src": "4814:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "4826:6:1",
"nodeType": "YulTypedName",
"src": "4826:6:1",
"type": ""
},
{
"name": "value1",
"nativeSrc": "4834:6:1",
"nodeType": "YulTypedName",
"src": "4834:6:1",
"type": ""
}
],
"src": "4758:474:1"
},
{
"body": {
"nativeSrc": "5266:152:1",
"nodeType": "YulBlock",
"src": "5266:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5283:1:1",
"nodeType": "YulLiteral",
"src": "5283:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5286:77:1",
"nodeType": "YulLiteral",
"src": "5286:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5276:6:1",
"nodeType": "YulIdentifier",
"src": "5276:6:1"
},
"nativeSrc": "5276:88:1",
"nodeType": "YulFunctionCall",
"src": "5276:88:1"
},
"nativeSrc": "5276:88:1",
"nodeType": "YulExpressionStatement",
"src": "5276:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5380:1:1",
"nodeType": "YulLiteral",
"src": "5380:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "5383:4:1",
"nodeType": "YulLiteral",
"src": "5383:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5373:6:1",
"nodeType": "YulIdentifier",
"src": "5373:6:1"
},
"nativeSrc": "5373:15:1",
"nodeType": "YulFunctionCall",
"src": "5373:15:1"
},
"nativeSrc": "5373:15:1",
"nodeType": "YulExpressionStatement",
"src": "5373:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5404:1:1",
"nodeType": "YulLiteral",
"src": "5404:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5407:4:1",
"nodeType": "YulLiteral",
"src": "5407:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "5397:6:1",
"nodeType": "YulIdentifier",
"src": "5397:6:1"
},
"nativeSrc": "5397:15:1",
"nodeType": "YulFunctionCall",
"src": "5397:15:1"
},
"nativeSrc": "5397:15:1",
"nodeType": "YulExpressionStatement",
"src": "5397:15:1"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "5238:180:1",
"nodeType": "YulFunctionDefinition",
"src": "5238:180:1"
},
{
"body": {
"nativeSrc": "5475:269:1",
"nodeType": "YulBlock",
"src": "5475:269:1",
"statements": [
{
"nativeSrc": "5485:22:1",
"nodeType": "YulAssignment",
"src": "5485:22:1",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "5499:4:1",
"nodeType": "YulIdentifier",
"src": "5499:4:1"
},
{
"kind": "number",
"nativeSrc": "5505:1:1",
"nodeType": "YulLiteral",
"src": "5505:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "5495:3:1",
"nodeType": "YulIdentifier",
"src": "5495:3:1"
},
"nativeSrc": "5495:12:1",
"nodeType": "YulFunctionCall",
"src": "5495:12:1"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "5485:6:1",
"nodeType": "YulIdentifier",
"src": "5485:6:1"
}
]
},
{
"nativeSrc": "5516:38:1",
"nodeType": "YulVariableDeclaration",
"src": "5516:38:1",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "5546:4:1",
"nodeType": "YulIdentifier",
"src": "5546:4:1"
},
{
"kind": "number",
"nativeSrc": "5552:1:1",
"nodeType": "YulLiteral",
"src": "5552:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "5542:3:1",
"nodeType": "YulIdentifier",
"src": "5542:3:1"
},
"nativeSrc": "5542:12:1",
"nodeType": "YulFunctionCall",
"src": "5542:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "5520:18:1",
"nodeType": "YulTypedName",
"src": "5520:18:1",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "5593:51:1",
"nodeType": "YulBlock",
"src": "5593:51:1",
"statements": [
{
"nativeSrc": "5607:27:1",
"nodeType": "YulAssignment",
"src": "5607:27:1",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "5621:6:1",
"nodeType": "YulIdentifier",
"src": "5621:6:1"
},
{
"kind": "number",
"nativeSrc": "5629:4:1",
"nodeType": "YulLiteral",
"src": "5629:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "5617:3:1",
"nodeType": "YulIdentifier",
"src": "5617:3:1"
},
"nativeSrc": "5617:17:1",
"nodeType": "YulFunctionCall",
"src": "5617:17:1"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "5607:6:1",
"nodeType": "YulIdentifier",
"src": "5607:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "5573:18:1",
"nodeType": "YulIdentifier",
"src": "5573:18:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "5566:6:1",
"nodeType": "YulIdentifier",
"src": "5566:6:1"
},
"nativeSrc": "5566:26:1",
"nodeType": "YulFunctionCall",
"src": "5566:26:1"
},
"nativeSrc": "5563:81:1",
"nodeType": "YulIf",
"src": "5563:81:1"
},
{
"body": {
"nativeSrc": "5696:42:1",
"nodeType": "YulBlock",
"src": "5696:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "5710:16:1",
"nodeType": "YulIdentifier",
"src": "5710:16:1"
},
"nativeSrc": "5710:18:1",
"nodeType": "YulFunctionCall",
"src": "5710:18:1"
},
"nativeSrc": "5710:18:1",
"nodeType": "YulExpressionStatement",
"src": "5710:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "5660:18:1",
"nodeType": "YulIdentifier",
"src": "5660:18:1"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "5683:6:1",
"nodeType": "YulIdentifier",
"src": "5683:6:1"
},
{
"kind": "number",
"nativeSrc": "5691:2:1",
"nodeType": "YulLiteral",
"src": "5691:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "5680:2:1",
"nodeType": "YulIdentifier",
"src": "5680:2:1"
},
"nativeSrc": "5680:14:1",
"nodeType": "YulFunctionCall",
"src": "5680:14:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "5657:2:1",
"nodeType": "YulIdentifier",
"src": "5657:2:1"
},
"nativeSrc": "5657:38:1",
"nodeType": "YulFunctionCall",
"src": "5657:38:1"
},
"nativeSrc": "5654:84:1",
"nodeType": "YulIf",
"src": "5654:84:1"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "5424:320:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "5459:4:1",
"nodeType": "YulTypedName",
"src": "5459:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "5468:6:1",
"nodeType": "YulTypedName",
"src": "5468:6:1",
"type": ""
}
],
"src": "5424:320:1"
},
{
"body": {
"nativeSrc": "5815:53:1",
"nodeType": "YulBlock",
"src": "5815:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "5832:3:1",
"nodeType": "YulIdentifier",
"src": "5832:3:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "5855:5:1",
"nodeType": "YulIdentifier",
"src": "5855:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "5837:17:1",
"nodeType": "YulIdentifier",
"src": "5837:17:1"
},
"nativeSrc": "5837:24:1",
"nodeType": "YulFunctionCall",
"src": "5837:24:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5825:6:1",
"nodeType": "YulIdentifier",
"src": "5825:6:1"
},
"nativeSrc": "5825:37:1",
"nodeType": "YulFunctionCall",
"src": "5825:37:1"
},
"nativeSrc": "5825:37:1",
"nodeType": "YulExpressionStatement",
"src": "5825:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "5750:118:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5803:5:1",
"nodeType": "YulTypedName",
"src": "5803:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "5810:3:1",
"nodeType": "YulTypedName",
"src": "5810:3:1",
"type": ""
}
],
"src": "5750:118:1"
},
{
"body": {
"nativeSrc": "6028:288:1",
"nodeType": "YulBlock",
"src": "6028:288:1",
"statements": [
{
"nativeSrc": "6038:26:1",
"nodeType": "YulAssignment",
"src": "6038:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "6050:9:1",
"nodeType": "YulIdentifier",
"src": "6050:9:1"
},
{
"kind": "number",
"nativeSrc": "6061:2:1",
"nodeType": "YulLiteral",
"src": "6061:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6046:3:1",
"nodeType": "YulIdentifier",
"src": "6046:3:1"
},
"nativeSrc": "6046:18:1",
"nodeType": "YulFunctionCall",
"src": "6046:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "6038:4:1",
"nodeType": "YulIdentifier",
"src": "6038:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "6118:6:1",
"nodeType": "YulIdentifier",
"src": "6118:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6131:9:1",
"nodeType": "YulIdentifier",
"src": "6131:9:1"
},
{
"kind": "number",
"nativeSrc": "6142:1:1",
"nodeType": "YulLiteral",
"src": "6142:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6127:3:1",
"nodeType": "YulIdentifier",
"src": "6127:3:1"
},
"nativeSrc": "6127:17:1",
"nodeType": "YulFunctionCall",
"src": "6127:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "6074:43:1",
"nodeType": "YulIdentifier",
"src": "6074:43:1"
},
"nativeSrc": "6074:71:1",
"nodeType": "YulFunctionCall",
"src": "6074:71:1"
},
"nativeSrc": "6074:71:1",
"nodeType": "YulExpressionStatement",
"src": "6074:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "6199:6:1",
"nodeType": "YulIdentifier",
"src": "6199:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6212:9:1",
"nodeType": "YulIdentifier",
"src": "6212:9:1"
},
{
"kind": "number",
"nativeSrc": "6223:2:1",
"nodeType": "YulLiteral",
"src": "6223:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6208:3:1",
"nodeType": "YulIdentifier",
"src": "6208:3:1"
},
"nativeSrc": "6208:18:1",
"nodeType": "YulFunctionCall",
"src": "6208:18:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "6155:43:1",
"nodeType": "YulIdentifier",
"src": "6155:43:1"
},
"nativeSrc": "6155:72:1",
"nodeType": "YulFunctionCall",
"src": "6155:72:1"
},
"nativeSrc": "6155:72:1",
"nodeType": "YulExpressionStatement",
"src": "6155:72:1"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "6281:6:1",
"nodeType": "YulIdentifier",
"src": "6281:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6294:9:1",
"nodeType": "YulIdentifier",
"src": "6294:9:1"
},
{
"kind": "number",
"nativeSrc": "6305:2:1",
"nodeType": "YulLiteral",
"src": "6305:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6290:3:1",
"nodeType": "YulIdentifier",
"src": "6290:3:1"
},
"nativeSrc": "6290:18:1",
"nodeType": "YulFunctionCall",
"src": "6290:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "6237:43:1",
"nodeType": "YulIdentifier",
"src": "6237:43:1"
},
"nativeSrc": "6237:72:1",
"nodeType": "YulFunctionCall",
"src": "6237:72:1"
},
"nativeSrc": "6237:72:1",
"nodeType": "YulExpressionStatement",
"src": "6237:72:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
"nativeSrc": "5874:442:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5984:9:1",
"nodeType": "YulTypedName",
"src": "5984:9:1",
"type": ""
},
{
"name": "value2",
"nativeSrc": "5996:6:1",
"nodeType": "YulTypedName",
"src": "5996:6:1",
"type": ""
},
{
"name": "value1",
"nativeSrc": "6004:6:1",
"nodeType": "YulTypedName",
"src": "6004:6:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "6012:6:1",
"nodeType": "YulTypedName",
"src": "6012:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "6023:4:1",
"nodeType": "YulTypedName",
"src": "6023:4:1",
"type": ""
}
],
"src": "5874:442:1"
},
{
"body": {
"nativeSrc": "6428:66:1",
"nodeType": "YulBlock",
"src": "6428:66:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "6450:6:1",
"nodeType": "YulIdentifier",
"src": "6450:6:1"
},
{
"kind": "number",
"nativeSrc": "6458:1:1",
"nodeType": "YulLiteral",
"src": "6458:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6446:3:1",
"nodeType": "YulIdentifier",
"src": "6446:3:1"
},
"nativeSrc": "6446:14:1",
"nodeType": "YulFunctionCall",
"src": "6446:14:1"
},
{
"hexValue": "496e73756666696369656e7420616c6c6f77616e6365",
"kind": "string",
"nativeSrc": "6462:24:1",
"nodeType": "YulLiteral",
"src": "6462:24:1",
"type": "",
"value": "Insufficient allowance"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6439:6:1",
"nodeType": "YulIdentifier",
"src": "6439:6:1"
},
"nativeSrc": "6439:48:1",
"nodeType": "YulFunctionCall",
"src": "6439:48:1"
},
"nativeSrc": "6439:48:1",
"nodeType": "YulExpressionStatement",
"src": "6439:48:1"
}
]
},
"name": "store_literal_in_memory_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc",
"nativeSrc": "6322:172:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "6420:6:1",
"nodeType": "YulTypedName",
"src": "6420:6:1",
"type": ""
}
],
"src": "6322:172:1"
},
{
"body": {
"nativeSrc": "6646:220:1",
"nodeType": "YulBlock",
"src": "6646:220:1",
"statements": [
{
"nativeSrc": "6656:74:1",
"nodeType": "YulAssignment",
"src": "6656:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6722:3:1",
"nodeType": "YulIdentifier",
"src": "6722:3:1"
},
{
"kind": "number",
"nativeSrc": "6727:2:1",
"nodeType": "YulLiteral",
"src": "6727:2:1",
"type": "",
"value": "22"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "6663:58:1",
"nodeType": "YulIdentifier",
"src": "6663:58:1"
},
"nativeSrc": "6663:67:1",
"nodeType": "YulFunctionCall",
"src": "6663:67:1"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "6656:3:1",
"nodeType": "YulIdentifier",
"src": "6656:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6828:3:1",
"nodeType": "YulIdentifier",
"src": "6828:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc",
"nativeSrc": "6739:88:1",
"nodeType": "YulIdentifier",
"src": "6739:88:1"
},
"nativeSrc": "6739:93:1",
"nodeType": "YulFunctionCall",
"src": "6739:93:1"
},
"nativeSrc": "6739:93:1",
"nodeType": "YulExpressionStatement",
"src": "6739:93:1"
},
{
"nativeSrc": "6841:19:1",
"nodeType": "YulAssignment",
"src": "6841:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6852:3:1",
"nodeType": "YulIdentifier",
"src": "6852:3:1"
},
{
"kind": "number",
"nativeSrc": "6857:2:1",
"nodeType": "YulLiteral",
"src": "6857:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6848:3:1",
"nodeType": "YulIdentifier",
"src": "6848:3:1"
},
"nativeSrc": "6848:12:1",
"nodeType": "YulFunctionCall",
"src": "6848:12:1"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "6841:3:1",
"nodeType": "YulIdentifier",
"src": "6841:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc_to_t_string_memory_ptr_fromStack",
"nativeSrc": "6500:366:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "6634:3:1",
"nodeType": "YulTypedName",
"src": "6634:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "6642:3:1",
"nodeType": "YulTypedName",
"src": "6642:3:1",
"type": ""
}
],
"src": "6500:366:1"
},
{
"body": {
"nativeSrc": "7043:248:1",
"nodeType": "YulBlock",
"src": "7043:248:1",
"statements": [
{
"nativeSrc": "7053:26:1",
"nodeType": "YulAssignment",
"src": "7053:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "7065:9:1",
"nodeType": "YulIdentifier",
"src": "7065:9:1"
},
{
"kind": "number",
"nativeSrc": "7076:2:1",
"nodeType": "YulLiteral",
"src": "7076:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7061:3:1",
"nodeType": "YulIdentifier",
"src": "7061:3:1"
},
"nativeSrc": "7061:18:1",
"nodeType": "YulFunctionCall",
"src": "7061:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "7053:4:1",
"nodeType": "YulIdentifier",
"src": "7053:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "7100:9:1",
"nodeType": "YulIdentifier",
"src": "7100:9:1"
},
{
"kind": "number",
"nativeSrc": "7111:1:1",
"nodeType": "YulLiteral",
"src": "7111:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7096:3:1",
"nodeType": "YulIdentifier",
"src": "7096:3:1"
},
"nativeSrc": "7096:17:1",
"nodeType": "YulFunctionCall",
"src": "7096:17:1"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "7119:4:1",
"nodeType": "YulIdentifier",
"src": "7119:4:1"
},
{
"name": "headStart",
"nativeSrc": "7125:9:1",
"nodeType": "YulIdentifier",
"src": "7125:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "7115:3:1",
"nodeType": "YulIdentifier",
"src": "7115:3:1"
},
"nativeSrc": "7115:20:1",
"nodeType": "YulFunctionCall",
"src": "7115:20:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7089:6:1",
"nodeType": "YulIdentifier",
"src": "7089:6:1"
},
"nativeSrc": "7089:47:1",
"nodeType": "YulFunctionCall",
"src": "7089:47:1"
},
"nativeSrc": "7089:47:1",
"nodeType": "YulExpressionStatement",
"src": "7089:47:1"
},
{
"nativeSrc": "7145:139:1",
"nodeType": "YulAssignment",
"src": "7145:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "7279:4:1",
"nodeType": "YulIdentifier",
"src": "7279:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc_to_t_string_memory_ptr_fromStack",
"nativeSrc": "7153:124:1",
"nodeType": "YulIdentifier",
"src": "7153:124:1"
},
"nativeSrc": "7153:131:1",
"nodeType": "YulFunctionCall",
"src": "7153:131:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "7145:4:1",
"nodeType": "YulIdentifier",
"src": "7145:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "6872:419:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "7023:9:1",
"nodeType": "YulTypedName",
"src": "7023:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "7038:4:1",
"nodeType": "YulTypedName",
"src": "7038:4:1",
"type": ""
}
],
"src": "6872:419:1"
},
{
"body": {
"nativeSrc": "7325:152:1",
"nodeType": "YulBlock",
"src": "7325:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7342:1:1",
"nodeType": "YulLiteral",
"src": "7342:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "7345:77:1",
"nodeType": "YulLiteral",
"src": "7345:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7335:6:1",
"nodeType": "YulIdentifier",
"src": "7335:6:1"
},
"nativeSrc": "7335:88:1",
"nodeType": "YulFunctionCall",
"src": "7335:88:1"
},
"nativeSrc": "7335:88:1",
"nodeType": "YulExpressionStatement",
"src": "7335:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7439:1:1",
"nodeType": "YulLiteral",
"src": "7439:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "7442:4:1",
"nodeType": "YulLiteral",
"src": "7442:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7432:6:1",
"nodeType": "YulIdentifier",
"src": "7432:6:1"
},
"nativeSrc": "7432:15:1",
"nodeType": "YulFunctionCall",
"src": "7432:15:1"
},
"nativeSrc": "7432:15:1",
"nodeType": "YulExpressionStatement",
"src": "7432:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7463:1:1",
"nodeType": "YulLiteral",
"src": "7463:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "7466:4:1",
"nodeType": "YulLiteral",
"src": "7466:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "7456:6:1",
"nodeType": "YulIdentifier",
"src": "7456:6:1"
},
"nativeSrc": "7456:15:1",
"nodeType": "YulFunctionCall",
"src": "7456:15:1"
},
"nativeSrc": "7456:15:1",
"nodeType": "YulExpressionStatement",
"src": "7456:15:1"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "7297:180:1",
"nodeType": "YulFunctionDefinition",
"src": "7297:180:1"
},
{
"body": {
"nativeSrc": "7528:149:1",
"nodeType": "YulBlock",
"src": "7528:149:1",
"statements": [
{
"nativeSrc": "7538:25:1",
"nodeType": "YulAssignment",
"src": "7538:25:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7561:1:1",
"nodeType": "YulIdentifier",
"src": "7561:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7543:17:1",
"nodeType": "YulIdentifier",
"src": "7543:17:1"
},
"nativeSrc": "7543:20:1",
"nodeType": "YulFunctionCall",
"src": "7543:20:1"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "7538:1:1",
"nodeType": "YulIdentifier",
"src": "7538:1:1"
}
]
},
{
"nativeSrc": "7572:25:1",
"nodeType": "YulAssignment",
"src": "7572:25:1",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "7595:1:1",
"nodeType": "YulIdentifier",
"src": "7595:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7577:17:1",
"nodeType": "YulIdentifier",
"src": "7577:17:1"
},
"nativeSrc": "7577:20:1",
"nodeType": "YulFunctionCall",
"src": "7577:20:1"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "7572:1:1",
"nodeType": "YulIdentifier",
"src": "7572:1:1"
}
]
},
{
"nativeSrc": "7606:17:1",
"nodeType": "YulAssignment",
"src": "7606:17:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7618:1:1",
"nodeType": "YulIdentifier",
"src": "7618:1:1"
},
{
"name": "y",
"nativeSrc": "7621:1:1",
"nodeType": "YulIdentifier",
"src": "7621:1:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "7614:3:1",
"nodeType": "YulIdentifier",
"src": "7614:3:1"
},
"nativeSrc": "7614:9:1",
"nodeType": "YulFunctionCall",
"src": "7614:9:1"
},
"variableNames": [
{
"name": "diff",
"nativeSrc": "7606:4:1",
"nodeType": "YulIdentifier",
"src": "7606:4:1"
}
]
},
{
"body": {
"nativeSrc": "7648:22:1",
"nodeType": "YulBlock",
"src": "7648:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "7650:16:1",
"nodeType": "YulIdentifier",
"src": "7650:16:1"
},
"nativeSrc": "7650:18:1",
"nodeType": "YulFunctionCall",
"src": "7650:18:1"
},
"nativeSrc": "7650:18:1",
"nodeType": "YulExpressionStatement",
"src": "7650:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nativeSrc": "7639:4:1",
"nodeType": "YulIdentifier",
"src": "7639:4:1"
},
{
"name": "x",
"nativeSrc": "7645:1:1",
"nodeType": "YulIdentifier",
"src": "7645:1:1"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "7636:2:1",
"nodeType": "YulIdentifier",
"src": "7636:2:1"
},
"nativeSrc": "7636:11:1",
"nodeType": "YulFunctionCall",
"src": "7636:11:1"
},
"nativeSrc": "7633:37:1",
"nodeType": "YulIf",
"src": "7633:37:1"
}
]
},
"name": "checked_sub_t_uint256",
"nativeSrc": "7483:194:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "7514:1:1",
"nodeType": "YulTypedName",
"src": "7514:1:1",
"type": ""
},
{
"name": "y",
"nativeSrc": "7517:1:1",
"nodeType": "YulTypedName",
"src": "7517:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nativeSrc": "7523:4:1",
"nodeType": "YulTypedName",
"src": "7523:4:1",
"type": ""
}
],
"src": "7483:194:1"
},
{
"body": {
"nativeSrc": "7731:362:1",
"nodeType": "YulBlock",
"src": "7731:362:1",
"statements": [
{
"nativeSrc": "7741:25:1",
"nodeType": "YulAssignment",
"src": "7741:25:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7764:1:1",
"nodeType": "YulIdentifier",
"src": "7764:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7746:17:1",
"nodeType": "YulIdentifier",
"src": "7746:17:1"
},
"nativeSrc": "7746:20:1",
"nodeType": "YulFunctionCall",
"src": "7746:20:1"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "7741:1:1",
"nodeType": "YulIdentifier",
"src": "7741:1:1"
}
]
},
{
"nativeSrc": "7775:25:1",
"nodeType": "YulAssignment",
"src": "7775:25:1",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "7798:1:1",
"nodeType": "YulIdentifier",
"src": "7798:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7780:17:1",
"nodeType": "YulIdentifier",
"src": "7780:17:1"
},
"nativeSrc": "7780:20:1",
"nodeType": "YulFunctionCall",
"src": "7780:20:1"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "7775:1:1",
"nodeType": "YulIdentifier",
"src": "7775:1:1"
}
]
},
{
"nativeSrc": "7809:28:1",
"nodeType": "YulVariableDeclaration",
"src": "7809:28:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7832:1:1",
"nodeType": "YulIdentifier",
"src": "7832:1:1"
},
{
"name": "y",
"nativeSrc": "7835:1:1",
"nodeType": "YulIdentifier",
"src": "7835:1:1"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "7828:3:1",
"nodeType": "YulIdentifier",
"src": "7828:3:1"
},
"nativeSrc": "7828:9:1",
"nodeType": "YulFunctionCall",
"src": "7828:9:1"
},
"variables": [
{
"name": "product_raw",
"nativeSrc": "7813:11:1",
"nodeType": "YulTypedName",
"src": "7813:11:1",
"type": ""
}
]
},
{
"nativeSrc": "7846:41:1",
"nodeType": "YulAssignment",
"src": "7846:41:1",
"value": {
"arguments": [
{
"name": "product_raw",
"nativeSrc": "7875:11:1",
"nodeType": "YulIdentifier",
"src": "7875:11:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7857:17:1",
"nodeType": "YulIdentifier",
"src": "7857:17:1"
},
"nativeSrc": "7857:30:1",
"nodeType": "YulFunctionCall",
"src": "7857:30:1"
},
"variableNames": [
{
"name": "product",
"nativeSrc": "7846:7:1",
"nodeType": "YulIdentifier",
"src": "7846:7:1"
}
]
},
{
"body": {
"nativeSrc": "8064:22:1",
"nodeType": "YulBlock",
"src": "8064:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "8066:16:1",
"nodeType": "YulIdentifier",
"src": "8066:16:1"
},
"nativeSrc": "8066:18:1",
"nodeType": "YulFunctionCall",
"src": "8066:18:1"
},
"nativeSrc": "8066:18:1",
"nodeType": "YulExpressionStatement",
"src": "8066:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nativeSrc": "7997:1:1",
"nodeType": "YulIdentifier",
"src": "7997:1:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "7990:6:1",
"nodeType": "YulIdentifier",
"src": "7990:6:1"
},
"nativeSrc": "7990:9:1",
"nodeType": "YulFunctionCall",
"src": "7990:9:1"
},
{
"arguments": [
{
"name": "y",
"nativeSrc": "8020:1:1",
"nodeType": "YulIdentifier",
"src": "8020:1:1"
},
{
"arguments": [
{
"name": "product",
"nativeSrc": "8027:7:1",
"nodeType": "YulIdentifier",
"src": "8027:7:1"
},
{
"name": "x",
"nativeSrc": "8036:1:1",
"nodeType": "YulIdentifier",
"src": "8036:1:1"
}
],
"functionName": {
"name": "div",
"nativeSrc": "8023:3:1",
"nodeType": "YulIdentifier",
"src": "8023:3:1"
},
"nativeSrc": "8023:15:1",
"nodeType": "YulFunctionCall",
"src": "8023:15:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "8017:2:1",
"nodeType": "YulIdentifier",
"src": "8017:2:1"
},
"nativeSrc": "8017:22:1",
"nodeType": "YulFunctionCall",
"src": "8017:22:1"
}
],
"functionName": {
"name": "or",
"nativeSrc": "7970:2:1",
"nodeType": "YulIdentifier",
"src": "7970:2:1"
},
"nativeSrc": "7970:83:1",
"nodeType": "YulFunctionCall",
"src": "7970:83:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "7950:6:1",
"nodeType": "YulIdentifier",
"src": "7950:6:1"
},
"nativeSrc": "7950:113:1",
"nodeType": "YulFunctionCall",
"src": "7950:113:1"
},
"nativeSrc": "7947:139:1",
"nodeType": "YulIf",
"src": "7947:139:1"
}
]
},
"name": "checked_mul_t_uint256",
"nativeSrc": "7683:410:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "7714:1:1",
"nodeType": "YulTypedName",
"src": "7714:1:1",
"type": ""
},
{
"name": "y",
"nativeSrc": "7717:1:1",
"nodeType": "YulTypedName",
"src": "7717:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nativeSrc": "7723:7:1",
"nodeType": "YulTypedName",
"src": "7723:7:1",
"type": ""
}
],
"src": "7683:410:1"
},
{
"body": {
"nativeSrc": "8127:152:1",
"nodeType": "YulBlock",
"src": "8127:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "8144:1:1",
"nodeType": "YulLiteral",
"src": "8144:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "8147:77:1",
"nodeType": "YulLiteral",
"src": "8147:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "8137:6:1",
"nodeType": "YulIdentifier",
"src": "8137:6:1"
},
"nativeSrc": "8137:88:1",
"nodeType": "YulFunctionCall",
"src": "8137:88:1"
},
"nativeSrc": "8137:88:1",
"nodeType": "YulExpressionStatement",
"src": "8137:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "8241:1:1",
"nodeType": "YulLiteral",
"src": "8241:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "8244:4:1",
"nodeType": "YulLiteral",
"src": "8244:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "8234:6:1",
"nodeType": "YulIdentifier",
"src": "8234:6:1"
},
"nativeSrc": "8234:15:1",
"nodeType": "YulFunctionCall",
"src": "8234:15:1"
},
"nativeSrc": "8234:15:1",
"nodeType": "YulExpressionStatement",
"src": "8234:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "8265:1:1",
"nodeType": "YulLiteral",
"src": "8265:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "8268:4:1",
"nodeType": "YulLiteral",
"src": "8268:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "8258:6:1",
"nodeType": "YulIdentifier",
"src": "8258:6:1"
},
"nativeSrc": "8258:15:1",
"nodeType": "YulFunctionCall",
"src": "8258:15:1"
},
"nativeSrc": "8258:15:1",
"nodeType": "YulExpressionStatement",
"src": "8258:15:1"
}
]
},
"name": "panic_error_0x12",
"nativeSrc": "8099:180:1",
"nodeType": "YulFunctionDefinition",
"src": "8099:180:1"
},
{
"body": {
"nativeSrc": "8327:143:1",
"nodeType": "YulBlock",
"src": "8327:143:1",
"statements": [
{
"nativeSrc": "8337:25:1",
"nodeType": "YulAssignment",
"src": "8337:25:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "8360:1:1",
"nodeType": "YulIdentifier",
"src": "8360:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "8342:17:1",
"nodeType": "YulIdentifier",
"src": "8342:17:1"
},
"nativeSrc": "8342:20:1",
"nodeType": "YulFunctionCall",
"src": "8342:20:1"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "8337:1:1",
"nodeType": "YulIdentifier",
"src": "8337:1:1"
}
]
},
{
"nativeSrc": "8371:25:1",
"nodeType": "YulAssignment",
"src": "8371:25:1",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "8394:1:1",
"nodeType": "YulIdentifier",
"src": "8394:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "8376:17:1",
"nodeType": "YulIdentifier",
"src": "8376:17:1"
},
"nativeSrc": "8376:20:1",
"nodeType": "YulFunctionCall",
"src": "8376:20:1"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "8371:1:1",
"nodeType": "YulIdentifier",
"src": "8371:1:1"
}
]
},
{
"body": {
"nativeSrc": "8418:22:1",
"nodeType": "YulBlock",
"src": "8418:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nativeSrc": "8420:16:1",
"nodeType": "YulIdentifier",
"src": "8420:16:1"
},
"nativeSrc": "8420:18:1",
"nodeType": "YulFunctionCall",
"src": "8420:18:1"
},
"nativeSrc": "8420:18:1",
"nodeType": "YulExpressionStatement",
"src": "8420:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nativeSrc": "8415:1:1",
"nodeType": "YulIdentifier",
"src": "8415:1:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "8408:6:1",
"nodeType": "YulIdentifier",
"src": "8408:6:1"
},
"nativeSrc": "8408:9:1",
"nodeType": "YulFunctionCall",
"src": "8408:9:1"
},
"nativeSrc": "8405:35:1",
"nodeType": "YulIf",
"src": "8405:35:1"
},
{
"nativeSrc": "8450:14:1",
"nodeType": "YulAssignment",
"src": "8450:14:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "8459:1:1",
"nodeType": "YulIdentifier",
"src": "8459:1:1"
},
{
"name": "y",
"nativeSrc": "8462:1:1",
"nodeType": "YulIdentifier",
"src": "8462:1:1"
}
],
"functionName": {
"name": "div",
"nativeSrc": "8455:3:1",
"nodeType": "YulIdentifier",
"src": "8455:3:1"
},
"nativeSrc": "8455:9:1",
"nodeType": "YulFunctionCall",
"src": "8455:9:1"
},
"variableNames": [
{
"name": "r",
"nativeSrc": "8450:1:1",
"nodeType": "YulIdentifier",
"src": "8450:1:1"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nativeSrc": "8285:185:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "8316:1:1",
"nodeType": "YulTypedName",
"src": "8316:1:1",
"type": ""
},
{
"name": "y",
"nativeSrc": "8319:1:1",
"nodeType": "YulTypedName",
"src": "8319:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nativeSrc": "8325:1:1",
"nodeType": "YulTypedName",
"src": "8325:1:1",
"type": ""
}
],
"src": "8285:185:1"
},
{
"body": {
"nativeSrc": "8582:64:1",
"nodeType": "YulBlock",
"src": "8582:64:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "8604:6:1",
"nodeType": "YulIdentifier",
"src": "8604:6:1"
},
{
"kind": "number",
"nativeSrc": "8612:1:1",
"nodeType": "YulLiteral",
"src": "8612:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8600:3:1",
"nodeType": "YulIdentifier",
"src": "8600:3:1"
},
"nativeSrc": "8600:14:1",
"nodeType": "YulFunctionCall",
"src": "8600:14:1"
},
{
"hexValue": "496e73756666696369656e742062616c616e6365",
"kind": "string",
"nativeSrc": "8616:22:1",
"nodeType": "YulLiteral",
"src": "8616:22:1",
"type": "",
"value": "Insufficient balance"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "8593:6:1",
"nodeType": "YulIdentifier",
"src": "8593:6:1"
},
"nativeSrc": "8593:46:1",
"nodeType": "YulFunctionCall",
"src": "8593:46:1"
},
"nativeSrc": "8593:46:1",
"nodeType": "YulExpressionStatement",
"src": "8593:46:1"
}
]
},
"name": "store_literal_in_memory_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5",
"nativeSrc": "8476:170:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "8574:6:1",
"nodeType": "YulTypedName",
"src": "8574:6:1",
"type": ""
}
],
"src": "8476:170:1"
},
{
"body": {
"nativeSrc": "8798:220:1",
"nodeType": "YulBlock",
"src": "8798:220:1",
"statements": [
{
"nativeSrc": "8808:74:1",
"nodeType": "YulAssignment",
"src": "8808:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "8874:3:1",
"nodeType": "YulIdentifier",
"src": "8874:3:1"
},
{
"kind": "number",
"nativeSrc": "8879:2:1",
"nodeType": "YulLiteral",
"src": "8879:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "8815:58:1",
"nodeType": "YulIdentifier",
"src": "8815:58:1"
},
"nativeSrc": "8815:67:1",
"nodeType": "YulFunctionCall",
"src": "8815:67:1"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "8808:3:1",
"nodeType": "YulIdentifier",
"src": "8808:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "8980:3:1",
"nodeType": "YulIdentifier",
"src": "8980:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5",
"nativeSrc": "8891:88:1",
"nodeType": "YulIdentifier",
"src": "8891:88:1"
},
"nativeSrc": "8891:93:1",
"nodeType": "YulFunctionCall",
"src": "8891:93:1"
},
"nativeSrc": "8891:93:1",
"nodeType": "YulExpressionStatement",
"src": "8891:93:1"
},
{
"nativeSrc": "8993:19:1",
"nodeType": "YulAssignment",
"src": "8993:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "9004:3:1",
"nodeType": "YulIdentifier",
"src": "9004:3:1"
},
{
"kind": "number",
"nativeSrc": "9009:2:1",
"nodeType": "YulLiteral",
"src": "9009:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9000:3:1",
"nodeType": "YulIdentifier",
"src": "9000:3:1"
},
"nativeSrc": "9000:12:1",
"nodeType": "YulFunctionCall",
"src": "9000:12:1"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "8993:3:1",
"nodeType": "YulIdentifier",
"src": "8993:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5_to_t_string_memory_ptr_fromStack",
"nativeSrc": "8652:366:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "8786:3:1",
"nodeType": "YulTypedName",
"src": "8786:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "8794:3:1",
"nodeType": "YulTypedName",
"src": "8794:3:1",
"type": ""
}
],
"src": "8652:366:1"
},
{
"body": {
"nativeSrc": "9195:248:1",
"nodeType": "YulBlock",
"src": "9195:248:1",
"statements": [
{
"nativeSrc": "9205:26:1",
"nodeType": "YulAssignment",
"src": "9205:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "9217:9:1",
"nodeType": "YulIdentifier",
"src": "9217:9:1"
},
{
"kind": "number",
"nativeSrc": "9228:2:1",
"nodeType": "YulLiteral",
"src": "9228:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9213:3:1",
"nodeType": "YulIdentifier",
"src": "9213:3:1"
},
"nativeSrc": "9213:18:1",
"nodeType": "YulFunctionCall",
"src": "9213:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "9205:4:1",
"nodeType": "YulIdentifier",
"src": "9205:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "9252:9:1",
"nodeType": "YulIdentifier",
"src": "9252:9:1"
},
{
"kind": "number",
"nativeSrc": "9263:1:1",
"nodeType": "YulLiteral",
"src": "9263:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9248:3:1",
"nodeType": "YulIdentifier",
"src": "9248:3:1"
},
"nativeSrc": "9248:17:1",
"nodeType": "YulFunctionCall",
"src": "9248:17:1"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "9271:4:1",
"nodeType": "YulIdentifier",
"src": "9271:4:1"
},
{
"name": "headStart",
"nativeSrc": "9277:9:1",
"nodeType": "YulIdentifier",
"src": "9277:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "9267:3:1",
"nodeType": "YulIdentifier",
"src": "9267:3:1"
},
"nativeSrc": "9267:20:1",
"nodeType": "YulFunctionCall",
"src": "9267:20:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "9241:6:1",
"nodeType": "YulIdentifier",
"src": "9241:6:1"
},
"nativeSrc": "9241:47:1",
"nodeType": "YulFunctionCall",
"src": "9241:47:1"
},
"nativeSrc": "9241:47:1",
"nodeType": "YulExpressionStatement",
"src": "9241:47:1"
},
{
"nativeSrc": "9297:139:1",
"nodeType": "YulAssignment",
"src": "9297:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "9431:4:1",
"nodeType": "YulIdentifier",
"src": "9431:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5_to_t_string_memory_ptr_fromStack",
"nativeSrc": "9305:124:1",
"nodeType": "YulIdentifier",
"src": "9305:124:1"
},
"nativeSrc": "9305:131:1",
"nodeType": "YulFunctionCall",
"src": "9305:131:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "9297:4:1",
"nodeType": "YulIdentifier",
"src": "9297:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "9024:419:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "9175:9:1",
"nodeType": "YulTypedName",
"src": "9175:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "9190:4:1",
"nodeType": "YulTypedName",
"src": "9190:4:1",
"type": ""
}
],
"src": "9024:419:1"
},
{
"body": {
"nativeSrc": "9555:56:1",
"nodeType": "YulBlock",
"src": "9555:56:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "9577:6:1",
"nodeType": "YulIdentifier",
"src": "9577:6:1"
},
{
"kind": "number",
"nativeSrc": "9585:1:1",
"nodeType": "YulLiteral",
"src": "9585:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9573:3:1",
"nodeType": "YulIdentifier",
"src": "9573:3:1"
},
"nativeSrc": "9573:14:1",
"nodeType": "YulFunctionCall",
"src": "9573:14:1"
},
{
"hexValue": "446561642061646472657373",
"kind": "string",
"nativeSrc": "9589:14:1",
"nodeType": "YulLiteral",
"src": "9589:14:1",
"type": "",
"value": "Dead address"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "9566:6:1",
"nodeType": "YulIdentifier",
"src": "9566:6:1"
},
"nativeSrc": "9566:38:1",
"nodeType": "YulFunctionCall",
"src": "9566:38:1"
},
"nativeSrc": "9566:38:1",
"nodeType": "YulExpressionStatement",
"src": "9566:38:1"
}
]
},
"name": "store_literal_in_memory_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec",
"nativeSrc": "9449:162:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "9547:6:1",
"nodeType": "YulTypedName",
"src": "9547:6:1",
"type": ""
}
],
"src": "9449:162:1"
},
{
"body": {
"nativeSrc": "9763:220:1",
"nodeType": "YulBlock",
"src": "9763:220:1",
"statements": [
{
"nativeSrc": "9773:74:1",
"nodeType": "YulAssignment",
"src": "9773:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "9839:3:1",
"nodeType": "YulIdentifier",
"src": "9839:3:1"
},
{
"kind": "number",
"nativeSrc": "9844:2:1",
"nodeType": "YulLiteral",
"src": "9844:2:1",
"type": "",
"value": "12"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "9780:58:1",
"nodeType": "YulIdentifier",
"src": "9780:58:1"
},
"nativeSrc": "9780:67:1",
"nodeType": "YulFunctionCall",
"src": "9780:67:1"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "9773:3:1",
"nodeType": "YulIdentifier",
"src": "9773:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "9945:3:1",
"nodeType": "YulIdentifier",
"src": "9945:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec",
"nativeSrc": "9856:88:1",
"nodeType": "YulIdentifier",
"src": "9856:88:1"
},
"nativeSrc": "9856:93:1",
"nodeType": "YulFunctionCall",
"src": "9856:93:1"
},
"nativeSrc": "9856:93:1",
"nodeType": "YulExpressionStatement",
"src": "9856:93:1"
},
{
"nativeSrc": "9958:19:1",
"nodeType": "YulAssignment",
"src": "9958:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "9969:3:1",
"nodeType": "YulIdentifier",
"src": "9969:3:1"
},
{
"kind": "number",
"nativeSrc": "9974:2:1",
"nodeType": "YulLiteral",
"src": "9974:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9965:3:1",
"nodeType": "YulIdentifier",
"src": "9965:3:1"
},
"nativeSrc": "9965:12:1",
"nodeType": "YulFunctionCall",
"src": "9965:12:1"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "9958:3:1",
"nodeType": "YulIdentifier",
"src": "9958:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec_to_t_string_memory_ptr_fromStack",
"nativeSrc": "9617:366:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "9751:3:1",
"nodeType": "YulTypedName",
"src": "9751:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "9759:3:1",
"nodeType": "YulTypedName",
"src": "9759:3:1",
"type": ""
}
],
"src": "9617:366:1"
},
{
"body": {
"nativeSrc": "10160:248:1",
"nodeType": "YulBlock",
"src": "10160:248:1",
"statements": [
{
"nativeSrc": "10170:26:1",
"nodeType": "YulAssignment",
"src": "10170:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "10182:9:1",
"nodeType": "YulIdentifier",
"src": "10182:9:1"
},
{
"kind": "number",
"nativeSrc": "10193:2:1",
"nodeType": "YulLiteral",
"src": "10193:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10178:3:1",
"nodeType": "YulIdentifier",
"src": "10178:3:1"
},
"nativeSrc": "10178:18:1",
"nodeType": "YulFunctionCall",
"src": "10178:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "10170:4:1",
"nodeType": "YulIdentifier",
"src": "10170:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "10217:9:1",
"nodeType": "YulIdentifier",
"src": "10217:9:1"
},
{
"kind": "number",
"nativeSrc": "10228:1:1",
"nodeType": "YulLiteral",
"src": "10228:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10213:3:1",
"nodeType": "YulIdentifier",
"src": "10213:3:1"
},
"nativeSrc": "10213:17:1",
"nodeType": "YulFunctionCall",
"src": "10213:17:1"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "10236:4:1",
"nodeType": "YulIdentifier",
"src": "10236:4:1"
},
{
"name": "headStart",
"nativeSrc": "10242:9:1",
"nodeType": "YulIdentifier",
"src": "10242:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "10232:3:1",
"nodeType": "YulIdentifier",
"src": "10232:3:1"
},
"nativeSrc": "10232:20:1",
"nodeType": "YulFunctionCall",
"src": "10232:20:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "10206:6:1",
"nodeType": "YulIdentifier",
"src": "10206:6:1"
},
"nativeSrc": "10206:47:1",
"nodeType": "YulFunctionCall",
"src": "10206:47:1"
},
"nativeSrc": "10206:47:1",
"nodeType": "YulExpressionStatement",
"src": "10206:47:1"
},
{
"nativeSrc": "10262:139:1",
"nodeType": "YulAssignment",
"src": "10262:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "10396:4:1",
"nodeType": "YulIdentifier",
"src": "10396:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec_to_t_string_memory_ptr_fromStack",
"nativeSrc": "10270:124:1",
"nodeType": "YulIdentifier",
"src": "10270:124:1"
},
"nativeSrc": "10270:131:1",
"nodeType": "YulFunctionCall",
"src": "10270:131:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "10262:4:1",
"nodeType": "YulIdentifier",
"src": "10262:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "9989:419:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "10140:9:1",
"nodeType": "YulTypedName",
"src": "10140:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "10155:4:1",
"nodeType": "YulTypedName",
"src": "10155:4:1",
"type": ""
}
],
"src": "9989:419:1"
},
{
"body": {
"nativeSrc": "10458:147:1",
"nodeType": "YulBlock",
"src": "10458:147:1",
"statements": [
{
"nativeSrc": "10468:25:1",
"nodeType": "YulAssignment",
"src": "10468:25:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "10491:1:1",
"nodeType": "YulIdentifier",
"src": "10491:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "10473:17:1",
"nodeType": "YulIdentifier",
"src": "10473:17:1"
},
"nativeSrc": "10473:20:1",
"nodeType": "YulFunctionCall",
"src": "10473:20:1"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "10468:1:1",
"nodeType": "YulIdentifier",
"src": "10468:1:1"
}
]
},
{
"nativeSrc": "10502:25:1",
"nodeType": "YulAssignment",
"src": "10502:25:1",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "10525:1:1",
"nodeType": "YulIdentifier",
"src": "10525:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "10507:17:1",
"nodeType": "YulIdentifier",
"src": "10507:17:1"
},
"nativeSrc": "10507:20:1",
"nodeType": "YulFunctionCall",
"src": "10507:20:1"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "10502:1:1",
"nodeType": "YulIdentifier",
"src": "10502:1:1"
}
]
},
{
"nativeSrc": "10536:16:1",
"nodeType": "YulAssignment",
"src": "10536:16:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "10547:1:1",
"nodeType": "YulIdentifier",
"src": "10547:1:1"
},
{
"name": "y",
"nativeSrc": "10550:1:1",
"nodeType": "YulIdentifier",
"src": "10550:1:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10543:3:1",
"nodeType": "YulIdentifier",
"src": "10543:3:1"
},
"nativeSrc": "10543:9:1",
"nodeType": "YulFunctionCall",
"src": "10543:9:1"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "10536:3:1",
"nodeType": "YulIdentifier",
"src": "10536:3:1"
}
]
},
{
"body": {
"nativeSrc": "10576:22:1",
"nodeType": "YulBlock",
"src": "10576:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "10578:16:1",
"nodeType": "YulIdentifier",
"src": "10578:16:1"
},
"nativeSrc": "10578:18:1",
"nodeType": "YulFunctionCall",
"src": "10578:18:1"
},
"nativeSrc": "10578:18:1",
"nodeType": "YulExpressionStatement",
"src": "10578:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "10568:1:1",
"nodeType": "YulIdentifier",
"src": "10568:1:1"
},
{
"name": "sum",
"nativeSrc": "10571:3:1",
"nodeType": "YulIdentifier",
"src": "10571:3:1"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "10565:2:1",
"nodeType": "YulIdentifier",
"src": "10565:2:1"
},
"nativeSrc": "10565:10:1",
"nodeType": "YulFunctionCall",
"src": "10565:10:1"
},
"nativeSrc": "10562:36:1",
"nodeType": "YulIf",
"src": "10562:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "10414:191:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "10445:1:1",
"nodeType": "YulTypedName",
"src": "10445:1:1",
"type": ""
},
{
"name": "y",
"nativeSrc": "10448:1:1",
"nodeType": "YulTypedName",
"src": "10448:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "10454:3:1",
"nodeType": "YulTypedName",
"src": "10454:3:1",
"type": ""
}
],
"src": "10414:191:1"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 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 abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\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 cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\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 abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(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_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\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 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_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc(memPtr) {\n\n mstore(add(memPtr, 0), \"Insufficient allowance\")\n\n }\n\n function abi_encode_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5(memPtr) {\n\n mstore(add(memPtr, 0), \"Insufficient balance\")\n\n }\n\n function abi_encode_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec(memPtr) {\n\n mstore(add(memPtr, 0), \"Dead address\")\n\n }\n\n function abi_encode_t_stringliteral_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n store_literal_in_memory_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7dfedb82b810251b2ebcec64409f97d56f22a64c4ca9247d54bb804dc3baefec_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061009b575f3560e01c8063313ce56711610063578063313ce567146101a757806370a08231146101d157806395d89b411461020d578063d0e30db014610237578063d45e09c114610241578063dd62ed3e1461027d5761009b565b806306fdde031461009f578063095ea7b3146100c957806318160ddd1461010557806323b872dd1461012f57806323e3fbd51461016b575b5f80fd5b3480156100aa575f80fd5b506100b36102b9565b6040516100c09190610964565b60405180910390f35b3480156100d4575f80fd5b506100ef60048036038101906100ea9190610a15565b610344565b6040516100fc9190610a6d565b60405180910390f35b348015610110575f80fd5b50610119610403565b6040516101269190610a95565b60405180910390f35b34801561013a575f80fd5b5061015560048036038101906101509190610aae565b610409565b6040516101629190610a6d565b60405180910390f35b348015610176575f80fd5b50610191600480360381019061018c9190610afe565b610569565b60405161019e9190610a95565b60405180910390f35b3480156101b2575f80fd5b506101bb61057e565b6040516101c89190610a95565b60405180910390f35b3480156101dc575f80fd5b506101f760048036038101906101f29190610afe565b610584565b6040516102049190610a95565b60405180910390f35b348015610218575f80fd5b50610221610599565b60405161022e9190610964565b60405180910390f35b61023f610625565b005b34801561024c575f80fd5b5061026760048036038101906102629190610a15565b6106d0565b6040516102749190610a6d565b60405180910390f35b348015610288575f80fd5b506102a3600480360381019061029e9190610b29565b6106e6565b6040516102b09190610a95565b60405180910390f35b5f80546102c590610b94565b80601f01602080910402602001604051908101604052809291908181526020018280546102f190610b94565b801561033c5780601f106103135761010080835404028352916020019161033c565b820191905f5260205f20905b81548152906001019060200180831161031f57829003601f168201915b505050505081565b5f8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f6e11fb1b7f119e3f2fa29896ef5fdf8b8a2d0d4df6fe90ba8668e7d8b2ffa25e3384846040516103f593929190610bd3565b60405180910390a192915050565b60025481565b5f8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156104c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bc90610c52565b60405180910390fd5b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461054c9190610c9d565b9250508190555061055e848484610706565b600190509392505050565b6006602052805f5260405f205f915090505481565b60035481565b6004602052805f5260405f205f915090505481565b600180546105a690610b94565b80601f01602080910402602001604051908101604052809291908181526020018280546105d290610b94565b801561061d5780601f106105f45761010080835404028352916020019161061d565b820191905f5260205f20905b81548152906001019060200180831161060057829003601f168201915b505050505081565b3460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f67016345785d8a00006103e83461067f9190610cd0565b6106899190610d3e565b90508060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b5f6106dc338484610706565b6001905092915050565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d90610db8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb90610e20565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108409190610c9d565b925050819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108939190610e3e565b925050819055507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8383836040516108cd93929190610bd3565b60405180910390a1505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156109115780820151818401526020810190506108f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610936826108da565b61094081856108e4565b93506109508185602086016108f4565b6109598161091c565b840191505092915050565b5f6020820190508181035f83015261097c818461092c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b182610988565b9050919050565b6109c1816109a7565b81146109cb575f80fd5b50565b5f813590506109dc816109b8565b92915050565b5f819050919050565b6109f4816109e2565b81146109fe575f80fd5b50565b5f81359050610a0f816109eb565b92915050565b5f8060408385031215610a2b57610a2a610984565b5b5f610a38858286016109ce565b9250506020610a4985828601610a01565b9150509250929050565b5f8115159050919050565b610a6781610a53565b82525050565b5f602082019050610a805f830184610a5e565b92915050565b610a8f816109e2565b82525050565b5f602082019050610aa85f830184610a86565b92915050565b5f805f60608486031215610ac557610ac4610984565b5b5f610ad2868287016109ce565b9350506020610ae3868287016109ce565b9250506040610af486828701610a01565b9150509250925092565b5f60208284031215610b1357610b12610984565b5b5f610b20848285016109ce565b91505092915050565b5f8060408385031215610b3f57610b3e610984565b5b5f610b4c858286016109ce565b9250506020610b5d858286016109ce565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610bab57607f821691505b602082108103610bbe57610bbd610b67565b5b50919050565b610bcd816109a7565b82525050565b5f606082019050610be65f830186610bc4565b610bf36020830185610bc4565b610c006040830184610a86565b949350505050565b7f496e73756666696369656e7420616c6c6f77616e6365000000000000000000005f82015250565b5f610c3c6016836108e4565b9150610c4782610c08565b602082019050919050565b5f6020820190508181035f830152610c6981610c30565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610ca7826109e2565b9150610cb2836109e2565b9250828203905081811115610cca57610cc9610c70565b5b92915050565b5f610cda826109e2565b9150610ce5836109e2565b9250828202610cf3816109e2565b91508282048414831517610d0a57610d09610c70565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d48826109e2565b9150610d53836109e2565b925082610d6357610d62610d11565b5b828204905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f610da26014836108e4565b9150610dad82610d6e565b602082019050919050565b5f6020820190508181035f830152610dcf81610d96565b9050919050565b7f44656164206164647265737300000000000000000000000000000000000000005f82015250565b5f610e0a600c836108e4565b9150610e1582610dd6565b602082019050919050565b5f6020820190508181035f830152610e3781610dfe565b9050919050565b5f610e48826109e2565b9150610e53836109e2565b9250828201905080821115610e6b57610e6a610c70565b5b9291505056fea264697066735822122097d3f9ead2b55dfce7cb185f9a23a734952cca391f3a5361ae7aa1a5ef0c5e2064736f6c63430008180033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x313CE567 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x237 JUMPI DUP1 PUSH4 0xD45E09C1 EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x27D JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x23E3FBD5 EQ PUSH2 0x16B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x964 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xEF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEA SWAP2 SWAP1 PUSH2 0xA15 JUMP JUMPDEST PUSH2 0x344 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFC SWAP2 SWAP1 PUSH2 0xA6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x110 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x119 PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x126 SWAP2 SWAP1 PUSH2 0xA95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0xAAE JUMP JUMPDEST PUSH2 0x409 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0xA6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x176 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x191 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xAFE JUMP JUMPDEST PUSH2 0x569 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19E SWAP2 SWAP1 PUSH2 0xA95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB PUSH2 0x57E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0xA95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0xAFE JUMP JUMPDEST PUSH2 0x584 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x204 SWAP2 SWAP1 PUSH2 0xA95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x218 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x221 PUSH2 0x599 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0x964 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23F PUSH2 0x625 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x267 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x262 SWAP2 SWAP1 PUSH2 0xA15 JUMP JUMPDEST PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x274 SWAP2 SWAP1 PUSH2 0xA6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0xB29 JUMP JUMPDEST PUSH2 0x6E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0xA95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP1 SLOAD PUSH2 0x2C5 SWAP1 PUSH2 0xB94 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2F1 SWAP1 PUSH2 0xB94 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x33C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x313 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x33C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x31F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x5 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x6E11FB1B7F119E3F2FA29896EF5FDF8B8A2D0D4DF6FE90BA8668E7D8B2FFA25E CALLER DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x3F5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xBD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x5 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4BC SWAP1 PUSH2 0xC52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x54C SWAP2 SWAP1 PUSH2 0xC9D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x55E DUP5 DUP5 DUP5 PUSH2 0x706 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0x5A6 SWAP1 PUSH2 0xB94 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5D2 SWAP1 PUSH2 0xB94 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x61D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x5F4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x61D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x600 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x6 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH0 PUSH8 0x16345785D8A0000 PUSH2 0x3E8 CALLVALUE PUSH2 0x67F SWAP2 SWAP1 PUSH2 0xCD0 JUMP JUMPDEST PUSH2 0x689 SWAP2 SWAP1 PUSH2 0xD3E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x4 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6DC CALLER DUP5 DUP5 PUSH2 0x706 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP2 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD LT ISZERO PUSH2 0x786 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x77D SWAP1 PUSH2 0xDB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7F4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7EB SWAP1 PUSH2 0xE20 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x840 SWAP2 SWAP1 PUSH2 0xC9D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x4 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x893 SWAP2 SWAP1 PUSH2 0xE3E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x8CD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xBD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x911 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x8F6 JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x936 DUP3 PUSH2 0x8DA JUMP JUMPDEST PUSH2 0x940 DUP2 DUP6 PUSH2 0x8E4 JUMP JUMPDEST SWAP4 POP PUSH2 0x950 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x8F4 JUMP JUMPDEST PUSH2 0x959 DUP2 PUSH2 0x91C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x97C DUP2 DUP5 PUSH2 0x92C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x9B1 DUP3 PUSH2 0x988 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C1 DUP2 PUSH2 0x9A7 JUMP JUMPDEST DUP2 EQ PUSH2 0x9CB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9DC DUP2 PUSH2 0x9B8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9F4 DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP2 EQ PUSH2 0x9FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA0F DUP2 PUSH2 0x9EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA2B JUMPI PUSH2 0xA2A PUSH2 0x984 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xA38 DUP6 DUP3 DUP7 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xA49 DUP6 DUP3 DUP7 ADD PUSH2 0xA01 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA67 DUP2 PUSH2 0xA53 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA80 PUSH0 DUP4 ADD DUP5 PUSH2 0xA5E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA8F DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAA8 PUSH0 DUP4 ADD DUP5 PUSH2 0xA86 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xAC5 JUMPI PUSH2 0xAC4 PUSH2 0x984 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xAD2 DUP7 DUP3 DUP8 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xAE3 DUP7 DUP3 DUP8 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xAF4 DUP7 DUP3 DUP8 ADD PUSH2 0xA01 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB13 JUMPI PUSH2 0xB12 PUSH2 0x984 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB20 DUP5 DUP3 DUP6 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB3F JUMPI PUSH2 0xB3E PUSH2 0x984 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB4C DUP6 DUP3 DUP7 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB5D DUP6 DUP3 DUP7 ADD PUSH2 0x9CE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xBAB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xBBE JUMPI PUSH2 0xBBD PUSH2 0xB67 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBCD DUP2 PUSH2 0x9A7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xBE6 PUSH0 DUP4 ADD DUP7 PUSH2 0xBC4 JUMP JUMPDEST PUSH2 0xBF3 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xBC4 JUMP JUMPDEST PUSH2 0xC00 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xA86 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E7420616C6C6F77616E636500000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xC3C PUSH1 0x16 DUP4 PUSH2 0x8E4 JUMP JUMPDEST SWAP2 POP PUSH2 0xC47 DUP3 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xC69 DUP2 PUSH2 0xC30 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xCA7 DUP3 PUSH2 0x9E2 JUMP JUMPDEST SWAP2 POP PUSH2 0xCB2 DUP4 PUSH2 0x9E2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0xCCA JUMPI PUSH2 0xCC9 PUSH2 0xC70 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCDA DUP3 PUSH2 0x9E2 JUMP JUMPDEST SWAP2 POP PUSH2 0xCE5 DUP4 PUSH2 0x9E2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xCF3 DUP2 PUSH2 0x9E2 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xD0A JUMPI PUSH2 0xD09 PUSH2 0xC70 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xD48 DUP3 PUSH2 0x9E2 JUMP JUMPDEST SWAP2 POP PUSH2 0xD53 DUP4 PUSH2 0x9E2 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD63 JUMPI PUSH2 0xD62 PUSH2 0xD11 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E742062616C616E6365000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xDA2 PUSH1 0x14 DUP4 PUSH2 0x8E4 JUMP JUMPDEST SWAP2 POP PUSH2 0xDAD DUP3 PUSH2 0xD6E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xDCF DUP2 PUSH2 0xD96 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4465616420616464726573730000000000000000000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xE0A PUSH1 0xC DUP4 PUSH2 0x8E4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE15 DUP3 PUSH2 0xDD6 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xE37 DUP2 PUSH2 0xDFE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE48 DUP3 PUSH2 0x9E2 JUMP JUMPDEST SWAP2 POP PUSH2 0xE53 DUP4 PUSH2 0x9E2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xE6B JUMPI PUSH2 0xE6A PUSH2 0xC70 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP8 0xD3 0xF9 0xEA 0xD2 0xB5 TSTORE 0xFC 0xE7 0xCB XOR PUSH0 SWAP11 0x23 0xA7 CALLVALUE SWAP6 0x2C 0xCA CODECOPY 0x1F GASPRICE MSTORE8 PUSH2 0xAE7A LOG1 0xA5 0xEF 0xC MCOPY KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ",
"sourceMap": "57:2125:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;84:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1532:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;134:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1831:349;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;316:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;166:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;196:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;108:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;710:268;;;:::i;:::-;;984:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;246:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;84:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1532:234::-;1615:12;1677:6;1643:9;:21;1653:10;1643:21;;;;;;;;;;;;;;;:31;1665:8;1643:31;;;;;;;;;;;;;;;:40;;;;1698:37;1706:10;1718:8;1728:6;1698:37;;;;;;;;:::i;:::-;;;;;;;;1532:234;;;;:::o;134:26::-;;;;:::o;1831:349::-;1943:4;2012:6;1980:9;:16;1990:5;1980:16;;;;;;;;;;;;;;;:28;1997:10;1980:28;;;;;;;;;;;;;;;;:38;;1959:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;2108:6;2076:9;:16;2086:5;2076:16;;;;;;;;;;;;;;;:28;2093:10;2076:28;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;2124:28;2133:5;2140:3;2145:6;2124:8;:28::i;:::-;2169:4;2162:11;;1831:349;;;;;:::o;316:44::-;;;;;;;;;;;;;;;;;:::o;166:23::-;;;;:::o;196:44::-;;;;;;;;;;;;;;;;;:::o;108:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;710:268::-;778:9;754;:21;764:10;754:21;;;;;;;;;;;;;;;:33;;;;865:21;911:12;902:4;890:9;:16;;;;:::i;:::-;889:35;;;;:::i;:::-;865:59;;958:13;934:9;:21;944:10;934:21;;;;;;;;;;;;;;;:37;;;;744:234;710:268::o;984:145::-;1052:4;1068:33;1077:10;1089:3;1094:6;1068:8;:33::i;:::-;1118:4;1111:11;;984:145;;;;:::o;246:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1135:342::-;1274:6;1254:9;:16;1264:5;1254:16;;;;;;;;;;;;;;;;:26;;1246:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;1338:1;1323:17;;:3;:17;;;1315:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;1387:6;1367:9;:16;1377:5;1367:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;1421:6;1403:9;:14;1413:3;1403:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;1442:28;1451:5;1458:3;1463:6;1442:28;;;;;;;;:::i;:::-;;;;;;;;1135:342;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:474::-;4826:6;4834;4883:2;4871:9;4862:7;4858:23;4854:32;4851:119;;;4889:79;;:::i;:::-;4851:119;5009:1;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4980:117;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4758:474;;;;;:::o;5238:180::-;5286:77;5283:1;5276:88;5383:4;5380:1;5373:15;5407:4;5404:1;5397:15;5424:320;5468:6;5505:1;5499:4;5495:12;5485:22;;5552:1;5546:4;5542:12;5573:18;5563:81;;5629:4;5621:6;5617:17;5607:27;;5563:81;5691:2;5683:6;5680:14;5660:18;5657:38;5654:84;;5710:18;;:::i;:::-;5654:84;5475:269;5424:320;;;:::o;5750:118::-;5837:24;5855:5;5837:24;:::i;:::-;5832:3;5825:37;5750:118;;:::o;5874:442::-;6023:4;6061:2;6050:9;6046:18;6038:26;;6074:71;6142:1;6131:9;6127:17;6118:6;6074:71;:::i;:::-;6155:72;6223:2;6212:9;6208:18;6199:6;6155:72;:::i;:::-;6237;6305:2;6294:9;6290:18;6281:6;6237:72;:::i;:::-;5874:442;;;;;;:::o;6322:172::-;6462:24;6458:1;6450:6;6446:14;6439:48;6322:172;:::o;6500:366::-;6642:3;6663:67;6727:2;6722:3;6663:67;:::i;:::-;6656:74;;6739:93;6828:3;6739:93;:::i;:::-;6857:2;6852:3;6848:12;6841:19;;6500:366;;;:::o;6872:419::-;7038:4;7076:2;7065:9;7061:18;7053:26;;7125:9;7119:4;7115:20;7111:1;7100:9;7096:17;7089:47;7153:131;7279:4;7153:131;:::i;:::-;7145:139;;6872:419;;;:::o;7297:180::-;7345:77;7342:1;7335:88;7442:4;7439:1;7432:15;7466:4;7463:1;7456:15;7483:194;7523:4;7543:20;7561:1;7543:20;:::i;:::-;7538:25;;7577:20;7595:1;7577:20;:::i;:::-;7572:25;;7621:1;7618;7614:9;7606:17;;7645:1;7639:4;7636:11;7633:37;;;7650:18;;:::i;:::-;7633:37;7483:194;;;;:::o;7683:410::-;7723:7;7746:20;7764:1;7746:20;:::i;:::-;7741:25;;7780:20;7798:1;7780:20;:::i;:::-;7775:25;;7835:1;7832;7828:9;7857:30;7875:11;7857:30;:::i;:::-;7846:41;;8036:1;8027:7;8023:15;8020:1;8017:22;7997:1;7990:9;7970:83;7947:139;;8066:18;;:::i;:::-;7947:139;7731:362;7683:410;;;;:::o;8099:180::-;8147:77;8144:1;8137:88;8244:4;8241:1;8234:15;8268:4;8265:1;8258:15;8285:185;8325:1;8342:20;8360:1;8342:20;:::i;:::-;8337:25;;8376:20;8394:1;8376:20;:::i;:::-;8371:25;;8415:1;8405:35;;8420:18;;:::i;:::-;8405:35;8462:1;8459;8455:9;8450:14;;8285:185;;;;:::o;8476:170::-;8616:22;8612:1;8604:6;8600:14;8593:46;8476:170;:::o;8652:366::-;8794:3;8815:67;8879:2;8874:3;8815:67;:::i;:::-;8808:74;;8891:93;8980:3;8891:93;:::i;:::-;9009:2;9004:3;9000:12;8993:19;;8652:366;;;:::o;9024:419::-;9190:4;9228:2;9217:9;9213:18;9205:26;;9277:9;9271:4;9267:20;9263:1;9252:9;9248:17;9241:47;9305:131;9431:4;9305:131;:::i;:::-;9297:139;;9024:419;;;:::o;9449:162::-;9589:14;9585:1;9577:6;9573:14;9566:38;9449:162;:::o;9617:366::-;9759:3;9780:67;9844:2;9839:3;9780:67;:::i;:::-;9773:74;;9856:93;9945:3;9856:93;:::i;:::-;9974:2;9969:3;9965:12;9958:19;;9617:366;;;:::o;9989:419::-;10155:4;10193:2;10182:9;10178:18;10170:26;;10242:9;10236:4;10232:20;10228:1;10217:9;10213:17;10206:47;10270:131;10396:4;10270:131;:::i;:::-;10262:139;;9989:419;;;:::o;10414:191::-;10454:3;10473:20;10491:1;10473:20;:::i;:::-;10468:25;;10507:20;10525:1;10507:20;:::i;:::-;10502:25;;10550:1;10547;10543:9;10536:16;;10571:3;10568:1;10565:10;10562:36;;;10578:18;;:::i;:::-;10562:36;10414:191;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "750200",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"allowance(address,address)": "infinite",
"approve(address,uint256)": "infinite",
"balanceOf(address)": "2824",
"canTransfer(address,uint256)": "infinite",
"decimals()": "2425",
"deposit()": "infinite",
"depositOf(address)": "2891",
"name()": "infinite",
"symbol()": "infinite",
"totalSupply()": "2470",
"transferFrom(address,address,uint256)": "infinite"
},
"internal": {
"transfer(address,address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"canTransfer(address,uint256)": "d45e09c1",
"decimals()": "313ce567",
"deposit()": "d0e30db0",
"depositOf(address)": "23e3fbd5",
"name()": "06fdde03",
"symbol()": "95d89b41",
"totalSupply()": "18160ddd",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "_initSupply",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "Approve",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "canTransfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "depositOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.24+commit.e11b9ed9"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "_initSupply",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "Approve",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "canTransfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "depositOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"Token.sol": "VotingToken"
},
"evmVersion": "shanghai",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"Token.sol": {
"keccak256": "0xf4dba5f9396b9d066a1225b2ad0d9be1dd0ad5796aa3dfc98414e71f4b9c1ea6",
"license": "MIT",
"urls": [
"bzz-raw://073450dc69091d58d82d5dc41220f292c3b93cbce4464795c1c412804ebab020",
"dweb:/ipfs/QmSJYtM8kMuobEPZUFJeEqz81QLs3YhXKkUCke71vCSj9a"
]
}
},
"version": 1
}
{
"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": {
"@_188": {
"entryPoint": null,
"id": 188,
"parameterSlots": 2,
"returnSlots": 0
},
"@_802": {
"entryPoint": null,
"id": 802,
"parameterSlots": 0,
"returnSlots": 0
},
"array_dataslot_t_string_storage": {
"entryPoint": 321,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 169,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 630,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_uint256": {
"entryPoint": 451,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 592,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 469,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 781,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 339,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 269,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 752,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"identity": {
"entryPoint": 460,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 722,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 224,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 179,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 508,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 354,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 710,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 564,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 366,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 517,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 560,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:5231:6",
"nodeType": "YulBlock",
"src": "0:5231:6",
"statements": [
{
"body": {
"nativeSrc": "66:40:6",
"nodeType": "YulBlock",
"src": "66:40:6",
"statements": [
{
"nativeSrc": "77:22:6",
"nodeType": "YulAssignment",
"src": "77:22:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "93:5:6",
"nodeType": "YulIdentifier",
"src": "93:5:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "87:5:6",
"nodeType": "YulIdentifier",
"src": "87:5:6"
},
"nativeSrc": "87:12:6",
"nodeType": "YulFunctionCall",
"src": "87:12:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "77:6:6",
"nodeType": "YulIdentifier",
"src": "77:6:6"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "7:99:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "49:5:6",
"nodeType": "YulTypedName",
"src": "49:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "59:6:6",
"nodeType": "YulTypedName",
"src": "59:6:6",
"type": ""
}
],
"src": "7:99:6"
},
{
"body": {
"nativeSrc": "140:152:6",
"nodeType": "YulBlock",
"src": "140:152:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "157:1:6",
"nodeType": "YulLiteral",
"src": "157:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "160:77:6",
"nodeType": "YulLiteral",
"src": "160:77:6",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "150:6:6",
"nodeType": "YulIdentifier",
"src": "150:6:6"
},
"nativeSrc": "150:88:6",
"nodeType": "YulFunctionCall",
"src": "150:88:6"
},
"nativeSrc": "150:88:6",
"nodeType": "YulExpressionStatement",
"src": "150:88:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "254:1:6",
"nodeType": "YulLiteral",
"src": "254:1:6",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "257:4:6",
"nodeType": "YulLiteral",
"src": "257:4:6",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "247:6:6",
"nodeType": "YulIdentifier",
"src": "247:6:6"
},
"nativeSrc": "247:15:6",
"nodeType": "YulFunctionCall",
"src": "247:15:6"
},
"nativeSrc": "247:15:6",
"nodeType": "YulExpressionStatement",
"src": "247:15:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "278:1:6",
"nodeType": "YulLiteral",
"src": "278:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "281:4:6",
"nodeType": "YulLiteral",
"src": "281:4:6",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "271:6:6",
"nodeType": "YulIdentifier",
"src": "271:6:6"
},
"nativeSrc": "271:15:6",
"nodeType": "YulFunctionCall",
"src": "271:15:6"
},
"nativeSrc": "271:15:6",
"nodeType": "YulExpressionStatement",
"src": "271:15:6"
}
]
},
"name": "panic_error_0x41",
"nativeSrc": "112:180:6",
"nodeType": "YulFunctionDefinition",
"src": "112:180:6"
},
{
"body": {
"nativeSrc": "326:152:6",
"nodeType": "YulBlock",
"src": "326:152:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "343:1:6",
"nodeType": "YulLiteral",
"src": "343:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "346:77:6",
"nodeType": "YulLiteral",
"src": "346:77:6",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "336:6:6",
"nodeType": "YulIdentifier",
"src": "336:6:6"
},
"nativeSrc": "336:88:6",
"nodeType": "YulFunctionCall",
"src": "336:88:6"
},
"nativeSrc": "336:88:6",
"nodeType": "YulExpressionStatement",
"src": "336:88:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "440:1:6",
"nodeType": "YulLiteral",
"src": "440:1:6",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "443:4:6",
"nodeType": "YulLiteral",
"src": "443:4:6",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "433:6:6",
"nodeType": "YulIdentifier",
"src": "433:6:6"
},
"nativeSrc": "433:15:6",
"nodeType": "YulFunctionCall",
"src": "433:15:6"
},
"nativeSrc": "433:15:6",
"nodeType": "YulExpressionStatement",
"src": "433:15:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "464:1:6",
"nodeType": "YulLiteral",
"src": "464:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "467:4:6",
"nodeType": "YulLiteral",
"src": "467:4:6",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "457:6:6",
"nodeType": "YulIdentifier",
"src": "457:6:6"
},
"nativeSrc": "457:15:6",
"nodeType": "YulFunctionCall",
"src": "457:15:6"
},
"nativeSrc": "457:15:6",
"nodeType": "YulExpressionStatement",
"src": "457:15:6"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "298:180:6",
"nodeType": "YulFunctionDefinition",
"src": "298:180:6"
},
{
"body": {
"nativeSrc": "535:269:6",
"nodeType": "YulBlock",
"src": "535:269:6",
"statements": [
{
"nativeSrc": "545:22:6",
"nodeType": "YulAssignment",
"src": "545:22:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "559:4:6",
"nodeType": "YulIdentifier",
"src": "559:4:6"
},
{
"kind": "number",
"nativeSrc": "565:1:6",
"nodeType": "YulLiteral",
"src": "565:1:6",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "555:3:6",
"nodeType": "YulIdentifier",
"src": "555:3:6"
},
"nativeSrc": "555:12:6",
"nodeType": "YulFunctionCall",
"src": "555:12:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "545:6:6",
"nodeType": "YulIdentifier",
"src": "545:6:6"
}
]
},
{
"nativeSrc": "576:38:6",
"nodeType": "YulVariableDeclaration",
"src": "576:38:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "606:4:6",
"nodeType": "YulIdentifier",
"src": "606:4:6"
},
{
"kind": "number",
"nativeSrc": "612:1:6",
"nodeType": "YulLiteral",
"src": "612:1:6",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "602:3:6",
"nodeType": "YulIdentifier",
"src": "602:3:6"
},
"nativeSrc": "602:12:6",
"nodeType": "YulFunctionCall",
"src": "602:12:6"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "580:18:6",
"nodeType": "YulTypedName",
"src": "580:18:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "653:51:6",
"nodeType": "YulBlock",
"src": "653:51:6",
"statements": [
{
"nativeSrc": "667:27:6",
"nodeType": "YulAssignment",
"src": "667:27:6",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "681:6:6",
"nodeType": "YulIdentifier",
"src": "681:6:6"
},
{
"kind": "number",
"nativeSrc": "689:4:6",
"nodeType": "YulLiteral",
"src": "689:4:6",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "677:3:6",
"nodeType": "YulIdentifier",
"src": "677:3:6"
},
"nativeSrc": "677:17:6",
"nodeType": "YulFunctionCall",
"src": "677:17:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "667:6:6",
"nodeType": "YulIdentifier",
"src": "667:6:6"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "633:18:6",
"nodeType": "YulIdentifier",
"src": "633:18:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "626:6:6",
"nodeType": "YulIdentifier",
"src": "626:6:6"
},
"nativeSrc": "626:26:6",
"nodeType": "YulFunctionCall",
"src": "626:26:6"
},
"nativeSrc": "623:81:6",
"nodeType": "YulIf",
"src": "623:81:6"
},
{
"body": {
"nativeSrc": "756:42:6",
"nodeType": "YulBlock",
"src": "756:42:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "770:16:6",
"nodeType": "YulIdentifier",
"src": "770:16:6"
},
"nativeSrc": "770:18:6",
"nodeType": "YulFunctionCall",
"src": "770:18:6"
},
"nativeSrc": "770:18:6",
"nodeType": "YulExpressionStatement",
"src": "770:18:6"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "720:18:6",
"nodeType": "YulIdentifier",
"src": "720:18:6"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "743:6:6",
"nodeType": "YulIdentifier",
"src": "743:6:6"
},
{
"kind": "number",
"nativeSrc": "751:2:6",
"nodeType": "YulLiteral",
"src": "751:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "740:2:6",
"nodeType": "YulIdentifier",
"src": "740:2:6"
},
"nativeSrc": "740:14:6",
"nodeType": "YulFunctionCall",
"src": "740:14:6"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "717:2:6",
"nodeType": "YulIdentifier",
"src": "717:2:6"
},
"nativeSrc": "717:38:6",
"nodeType": "YulFunctionCall",
"src": "717:38:6"
},
"nativeSrc": "714:84:6",
"nodeType": "YulIf",
"src": "714:84:6"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "484:320:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "519:4:6",
"nodeType": "YulTypedName",
"src": "519:4:6",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "528:6:6",
"nodeType": "YulTypedName",
"src": "528:6:6",
"type": ""
}
],
"src": "484:320:6"
},
{
"body": {
"nativeSrc": "864:87:6",
"nodeType": "YulBlock",
"src": "864:87:6",
"statements": [
{
"nativeSrc": "874:11:6",
"nodeType": "YulAssignment",
"src": "874:11:6",
"value": {
"name": "ptr",
"nativeSrc": "882:3:6",
"nodeType": "YulIdentifier",
"src": "882:3:6"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "874:4:6",
"nodeType": "YulIdentifier",
"src": "874:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "902:1:6",
"nodeType": "YulLiteral",
"src": "902:1:6",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nativeSrc": "905:3:6",
"nodeType": "YulIdentifier",
"src": "905:3:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "895:6:6",
"nodeType": "YulIdentifier",
"src": "895:6:6"
},
"nativeSrc": "895:14:6",
"nodeType": "YulFunctionCall",
"src": "895:14:6"
},
"nativeSrc": "895:14:6",
"nodeType": "YulExpressionStatement",
"src": "895:14:6"
},
{
"nativeSrc": "918:26:6",
"nodeType": "YulAssignment",
"src": "918:26:6",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "936:1:6",
"nodeType": "YulLiteral",
"src": "936:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "939:4:6",
"nodeType": "YulLiteral",
"src": "939:4:6",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nativeSrc": "926:9:6",
"nodeType": "YulIdentifier",
"src": "926:9:6"
},
"nativeSrc": "926:18:6",
"nodeType": "YulFunctionCall",
"src": "926:18:6"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "918:4:6",
"nodeType": "YulIdentifier",
"src": "918:4:6"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nativeSrc": "810:141:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "851:3:6",
"nodeType": "YulTypedName",
"src": "851:3:6",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nativeSrc": "859:4:6",
"nodeType": "YulTypedName",
"src": "859:4:6",
"type": ""
}
],
"src": "810:141:6"
},
{
"body": {
"nativeSrc": "1001:49:6",
"nodeType": "YulBlock",
"src": "1001:49:6",
"statements": [
{
"nativeSrc": "1011:33:6",
"nodeType": "YulAssignment",
"src": "1011:33:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1029:5:6",
"nodeType": "YulIdentifier",
"src": "1029:5:6"
},
{
"kind": "number",
"nativeSrc": "1036:2:6",
"nodeType": "YulLiteral",
"src": "1036:2:6",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1025:3:6",
"nodeType": "YulIdentifier",
"src": "1025:3:6"
},
"nativeSrc": "1025:14:6",
"nodeType": "YulFunctionCall",
"src": "1025:14:6"
},
{
"kind": "number",
"nativeSrc": "1041:2:6",
"nodeType": "YulLiteral",
"src": "1041:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nativeSrc": "1021:3:6",
"nodeType": "YulIdentifier",
"src": "1021:3:6"
},
"nativeSrc": "1021:23:6",
"nodeType": "YulFunctionCall",
"src": "1021:23:6"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "1011:6:6",
"nodeType": "YulIdentifier",
"src": "1011:6:6"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nativeSrc": "957:93:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "984:5:6",
"nodeType": "YulTypedName",
"src": "984:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "994:6:6",
"nodeType": "YulTypedName",
"src": "994:6:6",
"type": ""
}
],
"src": "957:93:6"
},
{
"body": {
"nativeSrc": "1109:54:6",
"nodeType": "YulBlock",
"src": "1109:54:6",
"statements": [
{
"nativeSrc": "1119:37:6",
"nodeType": "YulAssignment",
"src": "1119:37:6",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "1144:4:6",
"nodeType": "YulIdentifier",
"src": "1144:4:6"
},
{
"name": "value",
"nativeSrc": "1150:5:6",
"nodeType": "YulIdentifier",
"src": "1150:5:6"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "1140:3:6",
"nodeType": "YulIdentifier",
"src": "1140:3:6"
},
"nativeSrc": "1140:16:6",
"nodeType": "YulFunctionCall",
"src": "1140:16:6"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "1119:8:6",
"nodeType": "YulIdentifier",
"src": "1119:8:6"
}
]
}
]
},
"name": "shift_left_dynamic",
"nativeSrc": "1056:107:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "1084:4:6",
"nodeType": "YulTypedName",
"src": "1084:4:6",
"type": ""
},
{
"name": "value",
"nativeSrc": "1090:5:6",
"nodeType": "YulTypedName",
"src": "1090:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "1100:8:6",
"nodeType": "YulTypedName",
"src": "1100:8:6",
"type": ""
}
],
"src": "1056:107:6"
},
{
"body": {
"nativeSrc": "1245:317:6",
"nodeType": "YulBlock",
"src": "1245:317:6",
"statements": [
{
"nativeSrc": "1255:35:6",
"nodeType": "YulVariableDeclaration",
"src": "1255:35:6",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nativeSrc": "1276:10:6",
"nodeType": "YulIdentifier",
"src": "1276:10:6"
},
{
"kind": "number",
"nativeSrc": "1288:1:6",
"nodeType": "YulLiteral",
"src": "1288:1:6",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "1272:3:6",
"nodeType": "YulIdentifier",
"src": "1272:3:6"
},
"nativeSrc": "1272:18:6",
"nodeType": "YulFunctionCall",
"src": "1272:18:6"
},
"variables": [
{
"name": "shiftBits",
"nativeSrc": "1259:9:6",
"nodeType": "YulTypedName",
"src": "1259:9:6",
"type": ""
}
]
},
{
"nativeSrc": "1299:109:6",
"nodeType": "YulVariableDeclaration",
"src": "1299:109:6",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "1330:9:6",
"nodeType": "YulIdentifier",
"src": "1330:9:6"
},
{
"kind": "number",
"nativeSrc": "1341:66:6",
"nodeType": "YulLiteral",
"src": "1341:66:6",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "1311:18:6",
"nodeType": "YulIdentifier",
"src": "1311:18:6"
},
"nativeSrc": "1311:97:6",
"nodeType": "YulFunctionCall",
"src": "1311:97:6"
},
"variables": [
{
"name": "mask",
"nativeSrc": "1303:4:6",
"nodeType": "YulTypedName",
"src": "1303:4:6",
"type": ""
}
]
},
{
"nativeSrc": "1417:51:6",
"nodeType": "YulAssignment",
"src": "1417:51:6",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "1448:9:6",
"nodeType": "YulIdentifier",
"src": "1448:9:6"
},
{
"name": "toInsert",
"nativeSrc": "1459:8:6",
"nodeType": "YulIdentifier",
"src": "1459:8:6"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "1429:18:6",
"nodeType": "YulIdentifier",
"src": "1429:18:6"
},
"nativeSrc": "1429:39:6",
"nodeType": "YulFunctionCall",
"src": "1429:39:6"
},
"variableNames": [
{
"name": "toInsert",
"nativeSrc": "1417:8:6",
"nodeType": "YulIdentifier",
"src": "1417:8:6"
}
]
},
{
"nativeSrc": "1477:30:6",
"nodeType": "YulAssignment",
"src": "1477:30:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1490:5:6",
"nodeType": "YulIdentifier",
"src": "1490:5:6"
},
{
"arguments": [
{
"name": "mask",
"nativeSrc": "1501:4:6",
"nodeType": "YulIdentifier",
"src": "1501:4:6"
}
],
"functionName": {
"name": "not",
"nativeSrc": "1497:3:6",
"nodeType": "YulIdentifier",
"src": "1497:3:6"
},
"nativeSrc": "1497:9:6",
"nodeType": "YulFunctionCall",
"src": "1497:9:6"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1486:3:6",
"nodeType": "YulIdentifier",
"src": "1486:3:6"
},
"nativeSrc": "1486:21:6",
"nodeType": "YulFunctionCall",
"src": "1486:21:6"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "1477:5:6",
"nodeType": "YulIdentifier",
"src": "1477:5:6"
}
]
},
{
"nativeSrc": "1516:40:6",
"nodeType": "YulAssignment",
"src": "1516:40:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1529:5:6",
"nodeType": "YulIdentifier",
"src": "1529:5:6"
},
{
"arguments": [
{
"name": "toInsert",
"nativeSrc": "1540:8:6",
"nodeType": "YulIdentifier",
"src": "1540:8:6"
},
{
"name": "mask",
"nativeSrc": "1550:4:6",
"nodeType": "YulIdentifier",
"src": "1550:4:6"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1536:3:6",
"nodeType": "YulIdentifier",
"src": "1536:3:6"
},
"nativeSrc": "1536:19:6",
"nodeType": "YulFunctionCall",
"src": "1536:19:6"
}
],
"functionName": {
"name": "or",
"nativeSrc": "1526:2:6",
"nodeType": "YulIdentifier",
"src": "1526:2:6"
},
"nativeSrc": "1526:30:6",
"nodeType": "YulFunctionCall",
"src": "1526:30:6"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "1516:6:6",
"nodeType": "YulIdentifier",
"src": "1516:6:6"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nativeSrc": "1169:393:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1206:5:6",
"nodeType": "YulTypedName",
"src": "1206:5:6",
"type": ""
},
{
"name": "shiftBytes",
"nativeSrc": "1213:10:6",
"nodeType": "YulTypedName",
"src": "1213:10:6",
"type": ""
},
{
"name": "toInsert",
"nativeSrc": "1225:8:6",
"nodeType": "YulTypedName",
"src": "1225:8:6",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "1238:6:6",
"nodeType": "YulTypedName",
"src": "1238:6:6",
"type": ""
}
],
"src": "1169:393:6"
},
{
"body": {
"nativeSrc": "1613:32:6",
"nodeType": "YulBlock",
"src": "1613:32:6",
"statements": [
{
"nativeSrc": "1623:16:6",
"nodeType": "YulAssignment",
"src": "1623:16:6",
"value": {
"name": "value",
"nativeSrc": "1634:5:6",
"nodeType": "YulIdentifier",
"src": "1634:5:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1623:7:6",
"nodeType": "YulIdentifier",
"src": "1623:7:6"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "1568:77:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1595:5:6",
"nodeType": "YulTypedName",
"src": "1595:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1605:7:6",
"nodeType": "YulTypedName",
"src": "1605:7:6",
"type": ""
}
],
"src": "1568:77:6"
},
{
"body": {
"nativeSrc": "1683:28:6",
"nodeType": "YulBlock",
"src": "1683:28:6",
"statements": [
{
"nativeSrc": "1693:12:6",
"nodeType": "YulAssignment",
"src": "1693:12:6",
"value": {
"name": "value",
"nativeSrc": "1700:5:6",
"nodeType": "YulIdentifier",
"src": "1700:5:6"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "1693:3:6",
"nodeType": "YulIdentifier",
"src": "1693:3:6"
}
]
}
]
},
"name": "identity",
"nativeSrc": "1651:60:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1669:5:6",
"nodeType": "YulTypedName",
"src": "1669:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "1679:3:6",
"nodeType": "YulTypedName",
"src": "1679:3:6",
"type": ""
}
],
"src": "1651:60:6"
},
{
"body": {
"nativeSrc": "1777:82:6",
"nodeType": "YulBlock",
"src": "1777:82:6",
"statements": [
{
"nativeSrc": "1787:66:6",
"nodeType": "YulAssignment",
"src": "1787:66:6",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1845:5:6",
"nodeType": "YulIdentifier",
"src": "1845:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "1827:17:6",
"nodeType": "YulIdentifier",
"src": "1827:17:6"
},
"nativeSrc": "1827:24:6",
"nodeType": "YulFunctionCall",
"src": "1827:24:6"
}
],
"functionName": {
"name": "identity",
"nativeSrc": "1818:8:6",
"nodeType": "YulIdentifier",
"src": "1818:8:6"
},
"nativeSrc": "1818:34:6",
"nodeType": "YulFunctionCall",
"src": "1818:34:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "1800:17:6",
"nodeType": "YulIdentifier",
"src": "1800:17:6"
},
"nativeSrc": "1800:53:6",
"nodeType": "YulFunctionCall",
"src": "1800:53:6"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "1787:9:6",
"nodeType": "YulIdentifier",
"src": "1787:9:6"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "1717:142:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1757:5:6",
"nodeType": "YulTypedName",
"src": "1757:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "1767:9:6",
"nodeType": "YulTypedName",
"src": "1767:9:6",
"type": ""
}
],
"src": "1717:142:6"
},
{
"body": {
"nativeSrc": "1912:28:6",
"nodeType": "YulBlock",
"src": "1912:28:6",
"statements": [
{
"nativeSrc": "1922:12:6",
"nodeType": "YulAssignment",
"src": "1922:12:6",
"value": {
"name": "value",
"nativeSrc": "1929:5:6",
"nodeType": "YulIdentifier",
"src": "1929:5:6"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "1922:3:6",
"nodeType": "YulIdentifier",
"src": "1922:3:6"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nativeSrc": "1865:75:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1898:5:6",
"nodeType": "YulTypedName",
"src": "1898:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "1908:3:6",
"nodeType": "YulTypedName",
"src": "1908:3:6",
"type": ""
}
],
"src": "1865:75:6"
},
{
"body": {
"nativeSrc": "2022:193:6",
"nodeType": "YulBlock",
"src": "2022:193:6",
"statements": [
{
"nativeSrc": "2032:63:6",
"nodeType": "YulVariableDeclaration",
"src": "2032:63:6",
"value": {
"arguments": [
{
"name": "value_0",
"nativeSrc": "2087:7:6",
"nodeType": "YulIdentifier",
"src": "2087:7:6"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "2056:30:6",
"nodeType": "YulIdentifier",
"src": "2056:30:6"
},
"nativeSrc": "2056:39:6",
"nodeType": "YulFunctionCall",
"src": "2056:39:6"
},
"variables": [
{
"name": "convertedValue_0",
"nativeSrc": "2036:16:6",
"nodeType": "YulTypedName",
"src": "2036:16:6",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "2111:4:6",
"nodeType": "YulIdentifier",
"src": "2111:4:6"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "2151:4:6",
"nodeType": "YulIdentifier",
"src": "2151:4:6"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "2145:5:6",
"nodeType": "YulIdentifier",
"src": "2145:5:6"
},
"nativeSrc": "2145:11:6",
"nodeType": "YulFunctionCall",
"src": "2145:11:6"
},
{
"name": "offset",
"nativeSrc": "2158:6:6",
"nodeType": "YulIdentifier",
"src": "2158:6:6"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nativeSrc": "2190:16:6",
"nodeType": "YulIdentifier",
"src": "2190:16:6"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nativeSrc": "2166:23:6",
"nodeType": "YulIdentifier",
"src": "2166:23:6"
},
"nativeSrc": "2166:41:6",
"nodeType": "YulFunctionCall",
"src": "2166:41:6"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nativeSrc": "2117:27:6",
"nodeType": "YulIdentifier",
"src": "2117:27:6"
},
"nativeSrc": "2117:91:6",
"nodeType": "YulFunctionCall",
"src": "2117:91:6"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "2104:6:6",
"nodeType": "YulIdentifier",
"src": "2104:6:6"
},
"nativeSrc": "2104:105:6",
"nodeType": "YulFunctionCall",
"src": "2104:105:6"
},
"nativeSrc": "2104:105:6",
"nodeType": "YulExpressionStatement",
"src": "2104:105:6"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "1946:269:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "1999:4:6",
"nodeType": "YulTypedName",
"src": "1999:4:6",
"type": ""
},
{
"name": "offset",
"nativeSrc": "2005:6:6",
"nodeType": "YulTypedName",
"src": "2005:6:6",
"type": ""
},
{
"name": "value_0",
"nativeSrc": "2013:7:6",
"nodeType": "YulTypedName",
"src": "2013:7:6",
"type": ""
}
],
"src": "1946:269:6"
},
{
"body": {
"nativeSrc": "2270:24:6",
"nodeType": "YulBlock",
"src": "2270:24:6",
"statements": [
{
"nativeSrc": "2280:8:6",
"nodeType": "YulAssignment",
"src": "2280:8:6",
"value": {
"kind": "number",
"nativeSrc": "2287:1:6",
"nodeType": "YulLiteral",
"src": "2287:1:6",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "2280:3:6",
"nodeType": "YulIdentifier",
"src": "2280:3:6"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "2221:73:6",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nativeSrc": "2266:3:6",
"nodeType": "YulTypedName",
"src": "2266:3:6",
"type": ""
}
],
"src": "2221:73:6"
},
{
"body": {
"nativeSrc": "2353:136:6",
"nodeType": "YulBlock",
"src": "2353:136:6",
"statements": [
{
"nativeSrc": "2363:46:6",
"nodeType": "YulVariableDeclaration",
"src": "2363:46:6",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "2377:30:6",
"nodeType": "YulIdentifier",
"src": "2377:30:6"
},
"nativeSrc": "2377:32:6",
"nodeType": "YulFunctionCall",
"src": "2377:32:6"
},
"variables": [
{
"name": "zero_0",
"nativeSrc": "2367:6:6",
"nodeType": "YulTypedName",
"src": "2367:6:6",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "2462:4:6",
"nodeType": "YulIdentifier",
"src": "2462:4:6"
},
{
"name": "offset",
"nativeSrc": "2468:6:6",
"nodeType": "YulIdentifier",
"src": "2468:6:6"
},
{
"name": "zero_0",
"nativeSrc": "2476:6:6",
"nodeType": "YulIdentifier",
"src": "2476:6:6"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "2418:43:6",
"nodeType": "YulIdentifier",
"src": "2418:43:6"
},
"nativeSrc": "2418:65:6",
"nodeType": "YulFunctionCall",
"src": "2418:65:6"
},
"nativeSrc": "2418:65:6",
"nodeType": "YulExpressionStatement",
"src": "2418:65:6"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "2300:189:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "2339:4:6",
"nodeType": "YulTypedName",
"src": "2339:4:6",
"type": ""
},
{
"name": "offset",
"nativeSrc": "2345:6:6",
"nodeType": "YulTypedName",
"src": "2345:6:6",
"type": ""
}
],
"src": "2300:189:6"
},
{
"body": {
"nativeSrc": "2545:136:6",
"nodeType": "YulBlock",
"src": "2545:136:6",
"statements": [
{
"body": {
"nativeSrc": "2612:63:6",
"nodeType": "YulBlock",
"src": "2612:63:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nativeSrc": "2656:5:6",
"nodeType": "YulIdentifier",
"src": "2656:5:6"
},
{
"kind": "number",
"nativeSrc": "2663:1:6",
"nodeType": "YulLiteral",
"src": "2663:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "2626:29:6",
"nodeType": "YulIdentifier",
"src": "2626:29:6"
},
"nativeSrc": "2626:39:6",
"nodeType": "YulFunctionCall",
"src": "2626:39:6"
},
"nativeSrc": "2626:39:6",
"nodeType": "YulExpressionStatement",
"src": "2626:39:6"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nativeSrc": "2565:5:6",
"nodeType": "YulIdentifier",
"src": "2565:5:6"
},
{
"name": "end",
"nativeSrc": "2572:3:6",
"nodeType": "YulIdentifier",
"src": "2572:3:6"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "2562:2:6",
"nodeType": "YulIdentifier",
"src": "2562:2:6"
},
"nativeSrc": "2562:14:6",
"nodeType": "YulFunctionCall",
"src": "2562:14:6"
},
"nativeSrc": "2555:120:6",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "2577:26:6",
"nodeType": "YulBlock",
"src": "2577:26:6",
"statements": [
{
"nativeSrc": "2579:22:6",
"nodeType": "YulAssignment",
"src": "2579:22:6",
"value": {
"arguments": [
{
"name": "start",
"nativeSrc": "2592:5:6",
"nodeType": "YulIdentifier",
"src": "2592:5:6"
},
{
"kind": "number",
"nativeSrc": "2599:1:6",
"nodeType": "YulLiteral",
"src": "2599:1:6",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2588:3:6",
"nodeType": "YulIdentifier",
"src": "2588:3:6"
},
"nativeSrc": "2588:13:6",
"nodeType": "YulFunctionCall",
"src": "2588:13:6"
},
"variableNames": [
{
"name": "start",
"nativeSrc": "2579:5:6",
"nodeType": "YulIdentifier",
"src": "2579:5:6"
}
]
}
]
},
"pre": {
"nativeSrc": "2559:2:6",
"nodeType": "YulBlock",
"src": "2559:2:6",
"statements": []
},
"src": "2555:120:6"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "2495:186:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nativeSrc": "2533:5:6",
"nodeType": "YulTypedName",
"src": "2533:5:6",
"type": ""
},
{
"name": "end",
"nativeSrc": "2540:3:6",
"nodeType": "YulTypedName",
"src": "2540:3:6",
"type": ""
}
],
"src": "2495:186:6"
},
{
"body": {
"nativeSrc": "2766:464:6",
"nodeType": "YulBlock",
"src": "2766:464:6",
"statements": [
{
"body": {
"nativeSrc": "2792:431:6",
"nodeType": "YulBlock",
"src": "2792:431:6",
"statements": [
{
"nativeSrc": "2806:54:6",
"nodeType": "YulVariableDeclaration",
"src": "2806:54:6",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "2854:5:6",
"nodeType": "YulIdentifier",
"src": "2854:5:6"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "2822:31:6",
"nodeType": "YulIdentifier",
"src": "2822:31:6"
},
"nativeSrc": "2822:38:6",
"nodeType": "YulFunctionCall",
"src": "2822:38:6"
},
"variables": [
{
"name": "dataArea",
"nativeSrc": "2810:8:6",
"nodeType": "YulTypedName",
"src": "2810:8:6",
"type": ""
}
]
},
{
"nativeSrc": "2873:63:6",
"nodeType": "YulVariableDeclaration",
"src": "2873:63:6",
"value": {
"arguments": [
{
"name": "dataArea",
"nativeSrc": "2896:8:6",
"nodeType": "YulIdentifier",
"src": "2896:8:6"
},
{
"arguments": [
{
"name": "startIndex",
"nativeSrc": "2924:10:6",
"nodeType": "YulIdentifier",
"src": "2924:10:6"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "2906:17:6",
"nodeType": "YulIdentifier",
"src": "2906:17:6"
},
"nativeSrc": "2906:29:6",
"nodeType": "YulFunctionCall",
"src": "2906:29:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2892:3:6",
"nodeType": "YulIdentifier",
"src": "2892:3:6"
},
"nativeSrc": "2892:44:6",
"nodeType": "YulFunctionCall",
"src": "2892:44:6"
},
"variables": [
{
"name": "deleteStart",
"nativeSrc": "2877:11:6",
"nodeType": "YulTypedName",
"src": "2877:11:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "3093:27:6",
"nodeType": "YulBlock",
"src": "3093:27:6",
"statements": [
{
"nativeSrc": "3095:23:6",
"nodeType": "YulAssignment",
"src": "3095:23:6",
"value": {
"name": "dataArea",
"nativeSrc": "3110:8:6",
"nodeType": "YulIdentifier",
"src": "3110:8:6"
},
"variableNames": [
{
"name": "deleteStart",
"nativeSrc": "3095:11:6",
"nodeType": "YulIdentifier",
"src": "3095:11:6"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nativeSrc": "3077:10:6",
"nodeType": "YulIdentifier",
"src": "3077:10:6"
},
{
"kind": "number",
"nativeSrc": "3089:2:6",
"nodeType": "YulLiteral",
"src": "3089:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "3074:2:6",
"nodeType": "YulIdentifier",
"src": "3074:2:6"
},
"nativeSrc": "3074:18:6",
"nodeType": "YulFunctionCall",
"src": "3074:18:6"
},
"nativeSrc": "3071:49:6",
"nodeType": "YulIf",
"src": "3071:49:6"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nativeSrc": "3162:11:6",
"nodeType": "YulIdentifier",
"src": "3162:11:6"
},
{
"arguments": [
{
"name": "dataArea",
"nativeSrc": "3179:8:6",
"nodeType": "YulIdentifier",
"src": "3179:8:6"
},
{
"arguments": [
{
"name": "len",
"nativeSrc": "3207:3:6",
"nodeType": "YulIdentifier",
"src": "3207:3:6"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "3189:17:6",
"nodeType": "YulIdentifier",
"src": "3189:17:6"
},
"nativeSrc": "3189:22:6",
"nodeType": "YulFunctionCall",
"src": "3189:22:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3175:3:6",
"nodeType": "YulIdentifier",
"src": "3175:3:6"
},
"nativeSrc": "3175:37:6",
"nodeType": "YulFunctionCall",
"src": "3175:37:6"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "3133:28:6",
"nodeType": "YulIdentifier",
"src": "3133:28:6"
},
"nativeSrc": "3133:80:6",
"nodeType": "YulFunctionCall",
"src": "3133:80:6"
},
"nativeSrc": "3133:80:6",
"nodeType": "YulExpressionStatement",
"src": "3133:80:6"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nativeSrc": "2783:3:6",
"nodeType": "YulIdentifier",
"src": "2783:3:6"
},
{
"kind": "number",
"nativeSrc": "2788:2:6",
"nodeType": "YulLiteral",
"src": "2788:2:6",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "2780:2:6",
"nodeType": "YulIdentifier",
"src": "2780:2:6"
},
"nativeSrc": "2780:11:6",
"nodeType": "YulFunctionCall",
"src": "2780:11:6"
},
"nativeSrc": "2777:446:6",
"nodeType": "YulIf",
"src": "2777:446:6"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "2687:543:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nativeSrc": "2742:5:6",
"nodeType": "YulTypedName",
"src": "2742:5:6",
"type": ""
},
{
"name": "len",
"nativeSrc": "2749:3:6",
"nodeType": "YulTypedName",
"src": "2749:3:6",
"type": ""
},
{
"name": "startIndex",
"nativeSrc": "2754:10:6",
"nodeType": "YulTypedName",
"src": "2754:10:6",
"type": ""
}
],
"src": "2687:543:6"
},
{
"body": {
"nativeSrc": "3299:54:6",
"nodeType": "YulBlock",
"src": "3299:54:6",
"statements": [
{
"nativeSrc": "3309:37:6",
"nodeType": "YulAssignment",
"src": "3309:37:6",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "3334:4:6",
"nodeType": "YulIdentifier",
"src": "3334:4:6"
},
{
"name": "value",
"nativeSrc": "3340:5:6",
"nodeType": "YulIdentifier",
"src": "3340:5:6"
}
],
"functionName": {
"name": "shr",
"nativeSrc": "3330:3:6",
"nodeType": "YulIdentifier",
"src": "3330:3:6"
},
"nativeSrc": "3330:16:6",
"nodeType": "YulFunctionCall",
"src": "3330:16:6"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "3309:8:6",
"nodeType": "YulIdentifier",
"src": "3309:8:6"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "3236:117:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "3274:4:6",
"nodeType": "YulTypedName",
"src": "3274:4:6",
"type": ""
},
{
"name": "value",
"nativeSrc": "3280:5:6",
"nodeType": "YulTypedName",
"src": "3280:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "3290:8:6",
"nodeType": "YulTypedName",
"src": "3290:8:6",
"type": ""
}
],
"src": "3236:117:6"
},
{
"body": {
"nativeSrc": "3410:118:6",
"nodeType": "YulBlock",
"src": "3410:118:6",
"statements": [
{
"nativeSrc": "3420:68:6",
"nodeType": "YulVariableDeclaration",
"src": "3420:68:6",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nativeSrc": "3469:1:6",
"nodeType": "YulLiteral",
"src": "3469:1:6",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nativeSrc": "3472:5:6",
"nodeType": "YulIdentifier",
"src": "3472:5:6"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "3465:3:6",
"nodeType": "YulIdentifier",
"src": "3465:3:6"
},
"nativeSrc": "3465:13:6",
"nodeType": "YulFunctionCall",
"src": "3465:13:6"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "3484:1:6",
"nodeType": "YulLiteral",
"src": "3484:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nativeSrc": "3480:3:6",
"nodeType": "YulIdentifier",
"src": "3480:3:6"
},
"nativeSrc": "3480:6:6",
"nodeType": "YulFunctionCall",
"src": "3480:6:6"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "3436:28:6",
"nodeType": "YulIdentifier",
"src": "3436:28:6"
},
"nativeSrc": "3436:51:6",
"nodeType": "YulFunctionCall",
"src": "3436:51:6"
}
],
"functionName": {
"name": "not",
"nativeSrc": "3432:3:6",
"nodeType": "YulIdentifier",
"src": "3432:3:6"
},
"nativeSrc": "3432:56:6",
"nodeType": "YulFunctionCall",
"src": "3432:56:6"
},
"variables": [
{
"name": "mask",
"nativeSrc": "3424:4:6",
"nodeType": "YulTypedName",
"src": "3424:4:6",
"type": ""
}
]
},
{
"nativeSrc": "3497:25:6",
"nodeType": "YulAssignment",
"src": "3497:25:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "3511:4:6",
"nodeType": "YulIdentifier",
"src": "3511:4:6"
},
{
"name": "mask",
"nativeSrc": "3517:4:6",
"nodeType": "YulIdentifier",
"src": "3517:4:6"
}
],
"functionName": {
"name": "and",
"nativeSrc": "3507:3:6",
"nodeType": "YulIdentifier",
"src": "3507:3:6"
},
"nativeSrc": "3507:15:6",
"nodeType": "YulFunctionCall",
"src": "3507:15:6"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "3497:6:6",
"nodeType": "YulIdentifier",
"src": "3497:6:6"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nativeSrc": "3359:169:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "3387:4:6",
"nodeType": "YulTypedName",
"src": "3387:4:6",
"type": ""
},
{
"name": "bytes",
"nativeSrc": "3393:5:6",
"nodeType": "YulTypedName",
"src": "3393:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "3403:6:6",
"nodeType": "YulTypedName",
"src": "3403:6:6",
"type": ""
}
],
"src": "3359:169:6"
},
{
"body": {
"nativeSrc": "3614:214:6",
"nodeType": "YulBlock",
"src": "3614:214:6",
"statements": [
{
"nativeSrc": "3747:37:6",
"nodeType": "YulAssignment",
"src": "3747:37:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "3774:4:6",
"nodeType": "YulIdentifier",
"src": "3774:4:6"
},
{
"name": "len",
"nativeSrc": "3780:3:6",
"nodeType": "YulIdentifier",
"src": "3780:3:6"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "3755:18:6",
"nodeType": "YulIdentifier",
"src": "3755:18:6"
},
"nativeSrc": "3755:29:6",
"nodeType": "YulFunctionCall",
"src": "3755:29:6"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "3747:4:6",
"nodeType": "YulIdentifier",
"src": "3747:4:6"
}
]
},
{
"nativeSrc": "3793:29:6",
"nodeType": "YulAssignment",
"src": "3793:29:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "3804:4:6",
"nodeType": "YulIdentifier",
"src": "3804:4:6"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "3814:1:6",
"nodeType": "YulLiteral",
"src": "3814:1:6",
"type": "",
"value": "2"
},
{
"name": "len",
"nativeSrc": "3817:3:6",
"nodeType": "YulIdentifier",
"src": "3817:3:6"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "3810:3:6",
"nodeType": "YulIdentifier",
"src": "3810:3:6"
},
"nativeSrc": "3810:11:6",
"nodeType": "YulFunctionCall",
"src": "3810:11:6"
}
],
"functionName": {
"name": "or",
"nativeSrc": "3801:2:6",
"nodeType": "YulIdentifier",
"src": "3801:2:6"
},
"nativeSrc": "3801:21:6",
"nodeType": "YulFunctionCall",
"src": "3801:21:6"
},
"variableNames": [
{
"name": "used",
"nativeSrc": "3793:4:6",
"nodeType": "YulIdentifier",
"src": "3793:4:6"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "3533:295:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "3595:4:6",
"nodeType": "YulTypedName",
"src": "3595:4:6",
"type": ""
},
{
"name": "len",
"nativeSrc": "3601:3:6",
"nodeType": "YulTypedName",
"src": "3601:3:6",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nativeSrc": "3609:4:6",
"nodeType": "YulTypedName",
"src": "3609:4:6",
"type": ""
}
],
"src": "3533:295:6"
},
{
"body": {
"nativeSrc": "3925:1303:6",
"nodeType": "YulBlock",
"src": "3925:1303:6",
"statements": [
{
"nativeSrc": "3936:51:6",
"nodeType": "YulVariableDeclaration",
"src": "3936:51:6",
"value": {
"arguments": [
{
"name": "src",
"nativeSrc": "3983:3:6",
"nodeType": "YulIdentifier",
"src": "3983:3:6"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "3950:32:6",
"nodeType": "YulIdentifier",
"src": "3950:32:6"
},
"nativeSrc": "3950:37:6",
"nodeType": "YulFunctionCall",
"src": "3950:37:6"
},
"variables": [
{
"name": "newLen",
"nativeSrc": "3940:6:6",
"nodeType": "YulTypedName",
"src": "3940:6:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "4072:22:6",
"nodeType": "YulBlock",
"src": "4072:22:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "4074:16:6",
"nodeType": "YulIdentifier",
"src": "4074:16:6"
},
"nativeSrc": "4074:18:6",
"nodeType": "YulFunctionCall",
"src": "4074:18:6"
},
"nativeSrc": "4074:18:6",
"nodeType": "YulExpressionStatement",
"src": "4074:18:6"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "4044:6:6",
"nodeType": "YulIdentifier",
"src": "4044:6:6"
},
{
"kind": "number",
"nativeSrc": "4052:18:6",
"nodeType": "YulLiteral",
"src": "4052:18:6",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "4041:2:6",
"nodeType": "YulIdentifier",
"src": "4041:2:6"
},
"nativeSrc": "4041:30:6",
"nodeType": "YulFunctionCall",
"src": "4041:30:6"
},
"nativeSrc": "4038:56:6",
"nodeType": "YulIf",
"src": "4038:56:6"
},
{
"nativeSrc": "4104:52:6",
"nodeType": "YulVariableDeclaration",
"src": "4104:52:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "4150:4:6",
"nodeType": "YulIdentifier",
"src": "4150:4:6"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "4144:5:6",
"nodeType": "YulIdentifier",
"src": "4144:5:6"
},
"nativeSrc": "4144:11:6",
"nodeType": "YulFunctionCall",
"src": "4144:11:6"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nativeSrc": "4118:25:6",
"nodeType": "YulIdentifier",
"src": "4118:25:6"
},
"nativeSrc": "4118:38:6",
"nodeType": "YulFunctionCall",
"src": "4118:38:6"
},
"variables": [
{
"name": "oldLen",
"nativeSrc": "4108:6:6",
"nodeType": "YulTypedName",
"src": "4108:6:6",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "4249:4:6",
"nodeType": "YulIdentifier",
"src": "4249:4:6"
},
{
"name": "oldLen",
"nativeSrc": "4255:6:6",
"nodeType": "YulIdentifier",
"src": "4255:6:6"
},
{
"name": "newLen",
"nativeSrc": "4263:6:6",
"nodeType": "YulIdentifier",
"src": "4263:6:6"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "4203:45:6",
"nodeType": "YulIdentifier",
"src": "4203:45:6"
},
"nativeSrc": "4203:67:6",
"nodeType": "YulFunctionCall",
"src": "4203:67:6"
},
"nativeSrc": "4203:67:6",
"nodeType": "YulExpressionStatement",
"src": "4203:67:6"
},
{
"nativeSrc": "4280:18:6",
"nodeType": "YulVariableDeclaration",
"src": "4280:18:6",
"value": {
"kind": "number",
"nativeSrc": "4297:1:6",
"nodeType": "YulLiteral",
"src": "4297:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nativeSrc": "4284:9:6",
"nodeType": "YulTypedName",
"src": "4284:9:6",
"type": ""
}
]
},
{
"nativeSrc": "4308:17:6",
"nodeType": "YulAssignment",
"src": "4308:17:6",
"value": {
"kind": "number",
"nativeSrc": "4321:4:6",
"nodeType": "YulLiteral",
"src": "4321:4:6",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "4308:9:6",
"nodeType": "YulIdentifier",
"src": "4308:9:6"
}
]
},
{
"cases": [
{
"body": {
"nativeSrc": "4372:611:6",
"nodeType": "YulBlock",
"src": "4372:611:6",
"statements": [
{
"nativeSrc": "4386:37:6",
"nodeType": "YulVariableDeclaration",
"src": "4386:37:6",
"value": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "4405:6:6",
"nodeType": "YulIdentifier",
"src": "4405:6:6"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "4417:4:6",
"nodeType": "YulLiteral",
"src": "4417:4:6",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nativeSrc": "4413:3:6",
"nodeType": "YulIdentifier",
"src": "4413:3:6"
},
"nativeSrc": "4413:9:6",
"nodeType": "YulFunctionCall",
"src": "4413:9:6"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4401:3:6",
"nodeType": "YulIdentifier",
"src": "4401:3:6"
},
"nativeSrc": "4401:22:6",
"nodeType": "YulFunctionCall",
"src": "4401:22:6"
},
"variables": [
{
"name": "loopEnd",
"nativeSrc": "4390:7:6",
"nodeType": "YulTypedName",
"src": "4390:7:6",
"type": ""
}
]
},
{
"nativeSrc": "4437:51:6",
"nodeType": "YulVariableDeclaration",
"src": "4437:51:6",
"value": {
"arguments": [
{
"name": "slot",
"nativeSrc": "4483:4:6",
"nodeType": "YulIdentifier",
"src": "4483:4:6"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "4451:31:6",
"nodeType": "YulIdentifier",
"src": "4451:31:6"
},
"nativeSrc": "4451:37:6",
"nodeType": "YulFunctionCall",
"src": "4451:37:6"
},
"variables": [
{
"name": "dstPtr",
"nativeSrc": "4441:6:6",
"nodeType": "YulTypedName",
"src": "4441:6:6",
"type": ""
}
]
},
{
"nativeSrc": "4501:10:6",
"nodeType": "YulVariableDeclaration",
"src": "4501:10:6",
"value": {
"kind": "number",
"nativeSrc": "4510:1:6",
"nodeType": "YulLiteral",
"src": "4510:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "4505:1:6",
"nodeType": "YulTypedName",
"src": "4505:1:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "4569:163:6",
"nodeType": "YulBlock",
"src": "4569:163:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "4594:6:6",
"nodeType": "YulIdentifier",
"src": "4594:6:6"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "4612:3:6",
"nodeType": "YulIdentifier",
"src": "4612:3:6"
},
{
"name": "srcOffset",
"nativeSrc": "4617:9:6",
"nodeType": "YulIdentifier",
"src": "4617:9:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4608:3:6",
"nodeType": "YulIdentifier",
"src": "4608:3:6"
},
"nativeSrc": "4608:19:6",
"nodeType": "YulFunctionCall",
"src": "4608:19:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "4602:5:6",
"nodeType": "YulIdentifier",
"src": "4602:5:6"
},
"nativeSrc": "4602:26:6",
"nodeType": "YulFunctionCall",
"src": "4602:26:6"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "4587:6:6",
"nodeType": "YulIdentifier",
"src": "4587:6:6"
},
"nativeSrc": "4587:42:6",
"nodeType": "YulFunctionCall",
"src": "4587:42:6"
},
"nativeSrc": "4587:42:6",
"nodeType": "YulExpressionStatement",
"src": "4587:42:6"
},
{
"nativeSrc": "4646:24:6",
"nodeType": "YulAssignment",
"src": "4646:24:6",
"value": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "4660:6:6",
"nodeType": "YulIdentifier",
"src": "4660:6:6"
},
{
"kind": "number",
"nativeSrc": "4668:1:6",
"nodeType": "YulLiteral",
"src": "4668:1:6",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4656:3:6",
"nodeType": "YulIdentifier",
"src": "4656:3:6"
},
"nativeSrc": "4656:14:6",
"nodeType": "YulFunctionCall",
"src": "4656:14:6"
},
"variableNames": [
{
"name": "dstPtr",
"nativeSrc": "4646:6:6",
"nodeType": "YulIdentifier",
"src": "4646:6:6"
}
]
},
{
"nativeSrc": "4687:31:6",
"nodeType": "YulAssignment",
"src": "4687:31:6",
"value": {
"arguments": [
{
"name": "srcOffset",
"nativeSrc": "4704:9:6",
"nodeType": "YulIdentifier",
"src": "4704:9:6"
},
{
"kind": "number",
"nativeSrc": "4715:2:6",
"nodeType": "YulLiteral",
"src": "4715:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4700:3:6",
"nodeType": "YulIdentifier",
"src": "4700:3:6"
},
"nativeSrc": "4700:18:6",
"nodeType": "YulFunctionCall",
"src": "4700:18:6"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "4687:9:6",
"nodeType": "YulIdentifier",
"src": "4687:9:6"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "4535:1:6",
"nodeType": "YulIdentifier",
"src": "4535:1:6"
},
{
"name": "loopEnd",
"nativeSrc": "4538:7:6",
"nodeType": "YulIdentifier",
"src": "4538:7:6"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "4532:2:6",
"nodeType": "YulIdentifier",
"src": "4532:2:6"
},
"nativeSrc": "4532:14:6",
"nodeType": "YulFunctionCall",
"src": "4532:14:6"
},
"nativeSrc": "4524:208:6",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "4547:21:6",
"nodeType": "YulBlock",
"src": "4547:21:6",
"statements": [
{
"nativeSrc": "4549:17:6",
"nodeType": "YulAssignment",
"src": "4549:17:6",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "4558:1:6",
"nodeType": "YulIdentifier",
"src": "4558:1:6"
},
{
"kind": "number",
"nativeSrc": "4561:4:6",
"nodeType": "YulLiteral",
"src": "4561:4:6",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4554:3:6",
"nodeType": "YulIdentifier",
"src": "4554:3:6"
},
"nativeSrc": "4554:12:6",
"nodeType": "YulFunctionCall",
"src": "4554:12:6"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "4549:1:6",
"nodeType": "YulIdentifier",
"src": "4549:1:6"
}
]
}
]
},
"pre": {
"nativeSrc": "4528:3:6",
"nodeType": "YulBlock",
"src": "4528:3:6",
"statements": []
},
"src": "4524:208:6"
},
{
"body": {
"nativeSrc": "4768:156:6",
"nodeType": "YulBlock",
"src": "4768:156:6",
"statements": [
{
"nativeSrc": "4786:43:6",
"nodeType": "YulVariableDeclaration",
"src": "4786:43:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "4813:3:6",
"nodeType": "YulIdentifier",
"src": "4813:3:6"
},
{
"name": "srcOffset",
"nativeSrc": "4818:9:6",
"nodeType": "YulIdentifier",
"src": "4818:9:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4809:3:6",
"nodeType": "YulIdentifier",
"src": "4809:3:6"
},
"nativeSrc": "4809:19:6",
"nodeType": "YulFunctionCall",
"src": "4809:19:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "4803:5:6",
"nodeType": "YulIdentifier",
"src": "4803:5:6"
},
"nativeSrc": "4803:26:6",
"nodeType": "YulFunctionCall",
"src": "4803:26:6"
},
"variables": [
{
"name": "lastValue",
"nativeSrc": "4790:9:6",
"nodeType": "YulTypedName",
"src": "4790:9:6",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "4853:6:6",
"nodeType": "YulIdentifier",
"src": "4853:6:6"
},
{
"arguments": [
{
"name": "lastValue",
"nativeSrc": "4880:9:6",
"nodeType": "YulIdentifier",
"src": "4880:9:6"
},
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "4895:6:6",
"nodeType": "YulIdentifier",
"src": "4895:6:6"
},
{
"kind": "number",
"nativeSrc": "4903:4:6",
"nodeType": "YulLiteral",
"src": "4903:4:6",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4891:3:6",
"nodeType": "YulIdentifier",
"src": "4891:3:6"
},
"nativeSrc": "4891:17:6",
"nodeType": "YulFunctionCall",
"src": "4891:17:6"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "4861:18:6",
"nodeType": "YulIdentifier",
"src": "4861:18:6"
},
"nativeSrc": "4861:48:6",
"nodeType": "YulFunctionCall",
"src": "4861:48:6"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "4846:6:6",
"nodeType": "YulIdentifier",
"src": "4846:6:6"
},
"nativeSrc": "4846:64:6",
"nodeType": "YulFunctionCall",
"src": "4846:64:6"
},
"nativeSrc": "4846:64:6",
"nodeType": "YulExpressionStatement",
"src": "4846:64:6"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nativeSrc": "4751:7:6",
"nodeType": "YulIdentifier",
"src": "4751:7:6"
},
{
"name": "newLen",
"nativeSrc": "4760:6:6",
"nodeType": "YulIdentifier",
"src": "4760:6:6"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "4748:2:6",
"nodeType": "YulIdentifier",
"src": "4748:2:6"
},
"nativeSrc": "4748:19:6",
"nodeType": "YulFunctionCall",
"src": "4748:19:6"
},
"nativeSrc": "4745:179:6",
"nodeType": "YulIf",
"src": "4745:179:6"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "4944:4:6",
"nodeType": "YulIdentifier",
"src": "4944:4:6"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "4958:6:6",
"nodeType": "YulIdentifier",
"src": "4958:6:6"
},
{
"kind": "number",
"nativeSrc": "4966:1:6",
"nodeType": "YulLiteral",
"src": "4966:1:6",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "4954:3:6",
"nodeType": "YulIdentifier",
"src": "4954:3:6"
},
"nativeSrc": "4954:14:6",
"nodeType": "YulFunctionCall",
"src": "4954:14:6"
},
{
"kind": "number",
"nativeSrc": "4970:1:6",
"nodeType": "YulLiteral",
"src": "4970:1:6",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4950:3:6",
"nodeType": "YulIdentifier",
"src": "4950:3:6"
},
"nativeSrc": "4950:22:6",
"nodeType": "YulFunctionCall",
"src": "4950:22:6"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "4937:6:6",
"nodeType": "YulIdentifier",
"src": "4937:6:6"
},
"nativeSrc": "4937:36:6",
"nodeType": "YulFunctionCall",
"src": "4937:36:6"
},
"nativeSrc": "4937:36:6",
"nodeType": "YulExpressionStatement",
"src": "4937:36:6"
}
]
},
"nativeSrc": "4365:618:6",
"nodeType": "YulCase",
"src": "4365:618:6",
"value": {
"kind": "number",
"nativeSrc": "4370:1:6",
"nodeType": "YulLiteral",
"src": "4370:1:6",
"type": "",
"value": "1"
}
},
{
"body": {
"nativeSrc": "5000:222:6",
"nodeType": "YulBlock",
"src": "5000:222:6",
"statements": [
{
"nativeSrc": "5014:14:6",
"nodeType": "YulVariableDeclaration",
"src": "5014:14:6",
"value": {
"kind": "number",
"nativeSrc": "5027:1:6",
"nodeType": "YulLiteral",
"src": "5027:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nativeSrc": "5018:5:6",
"nodeType": "YulTypedName",
"src": "5018:5:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "5051:67:6",
"nodeType": "YulBlock",
"src": "5051:67:6",
"statements": [
{
"nativeSrc": "5069:35:6",
"nodeType": "YulAssignment",
"src": "5069:35:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "5088:3:6",
"nodeType": "YulIdentifier",
"src": "5088:3:6"
},
{
"name": "srcOffset",
"nativeSrc": "5093:9:6",
"nodeType": "YulIdentifier",
"src": "5093:9:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5084:3:6",
"nodeType": "YulIdentifier",
"src": "5084:3:6"
},
"nativeSrc": "5084:19:6",
"nodeType": "YulFunctionCall",
"src": "5084:19:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "5078:5:6",
"nodeType": "YulIdentifier",
"src": "5078:5:6"
},
"nativeSrc": "5078:26:6",
"nodeType": "YulFunctionCall",
"src": "5078:26:6"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "5069:5:6",
"nodeType": "YulIdentifier",
"src": "5069:5:6"
}
]
}
]
},
"condition": {
"name": "newLen",
"nativeSrc": "5044:6:6",
"nodeType": "YulIdentifier",
"src": "5044:6:6"
},
"nativeSrc": "5041:77:6",
"nodeType": "YulIf",
"src": "5041:77:6"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "5138:4:6",
"nodeType": "YulIdentifier",
"src": "5138:4:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "5197:5:6",
"nodeType": "YulIdentifier",
"src": "5197:5:6"
},
{
"name": "newLen",
"nativeSrc": "5204:6:6",
"nodeType": "YulIdentifier",
"src": "5204:6:6"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "5144:52:6",
"nodeType": "YulIdentifier",
"src": "5144:52:6"
},
"nativeSrc": "5144:67:6",
"nodeType": "YulFunctionCall",
"src": "5144:67:6"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "5131:6:6",
"nodeType": "YulIdentifier",
"src": "5131:6:6"
},
"nativeSrc": "5131:81:6",
"nodeType": "YulFunctionCall",
"src": "5131:81:6"
},
"nativeSrc": "5131:81:6",
"nodeType": "YulExpressionStatement",
"src": "5131:81:6"
}
]
},
"nativeSrc": "4992:230:6",
"nodeType": "YulCase",
"src": "4992:230:6",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "4345:6:6",
"nodeType": "YulIdentifier",
"src": "4345:6:6"
},
{
"kind": "number",
"nativeSrc": "4353:2:6",
"nodeType": "YulLiteral",
"src": "4353:2:6",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "4342:2:6",
"nodeType": "YulIdentifier",
"src": "4342:2:6"
},
"nativeSrc": "4342:14:6",
"nodeType": "YulFunctionCall",
"src": "4342:14:6"
},
"nativeSrc": "4335:887:6",
"nodeType": "YulSwitch",
"src": "4335:887:6"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nativeSrc": "3833:1395:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "3914:4:6",
"nodeType": "YulTypedName",
"src": "3914:4:6",
"type": ""
},
{
"name": "src",
"nativeSrc": "3920:3:6",
"nodeType": "YulTypedName",
"src": "3920:3:6",
"type": ""
}
],
"src": "3833:1395:6"
}
]
},
"contents": "{\n\n function array_length_t_string_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_string_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_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_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_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_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_string_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_string_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": 6,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801562000010575f80fd5b506040518060400160405280600781526020017f566965746e616d000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f564e00000000000000000000000000000000000000000000000000000000000081525081600390816200008e91906200030d565b508060049081620000a091906200030d565b505050620003f1565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200012557607f821691505b6020821081036200013b576200013a620000e0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200019f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000162565b620001ab868362000162565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620001f5620001ef620001e984620001c3565b620001cc565b620001c3565b9050919050565b5f819050919050565b6200021083620001d5565b620002286200021f82620001fc565b8484546200016e565b825550505050565b5f90565b6200023e62000230565b6200024b81848462000205565b505050565b5b818110156200027257620002665f8262000234565b60018101905062000251565b5050565b601f821115620002c1576200028b8162000141565b620002968462000153565b81016020851015620002a6578190505b620002be620002b58562000153565b83018262000250565b50505b505050565b5f82821c905092915050565b5f620002e35f1984600802620002c6565b1980831691505092915050565b5f620002fd8383620002d2565b9150826002028217905092915050565b6200031882620000a9565b67ffffffffffffffff811115620003345762000333620000b3565b5b6200034082546200010d565b6200034d82828562000276565b5f60209050601f83116001811462000383575f84156200036e578287015190505b6200037a8582620002f0565b865550620003e9565b601f198416620003938662000141565b5f5b82811015620003bc5784890151825560018201915060208501945060208101905062000395565b86831015620003dc5784890151620003d8601f891682620002d2565b8355505b6001600288020188555050505b505050505050565b61105c80620003ff5f395ff3fe60806040526004361061009b575f3560e01c8063313ce56711610063578063313ce567146101a757806370a08231146101d157806395d89b411461020d578063a9059cbb14610237578063d0e30db014610273578063dd62ed3e1461027d5761009b565b806306fdde031461009f578063095ea7b3146100c957806318160ddd1461010557806323b872dd1461012f57806323e3fbd51461016b575b5f80fd5b3480156100aa575f80fd5b506100b36102b9565b6040516100c09190610c37565b60405180910390f35b3480156100d4575f80fd5b506100ef60048036038101906100ea9190610ce8565b610349565b6040516100fc9190610d40565b60405180910390f35b348015610110575f80fd5b5061011961036b565b6040516101269190610d68565b60405180910390f35b34801561013a575f80fd5b5061015560048036038101906101509190610d81565b610374565b6040516101629190610d40565b60405180910390f35b348015610176575f80fd5b50610191600480360381019061018c9190610dd1565b6103a2565b60405161019e9190610d68565b60405180910390f35b3480156101b2575f80fd5b506101bb6103b7565b6040516101c89190610e17565b60405180910390f35b3480156101dc575f80fd5b506101f760048036038101906101f29190610dd1565b6103bf565b6040516102049190610d68565b60405180910390f35b348015610218575f80fd5b50610221610404565b60405161022e9190610c37565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190610ce8565b610494565b60405161026a9190610d40565b60405180910390f35b61027b6104b6565b005b348015610288575f80fd5b506102a3600480360381019061029e9190610e30565b610529565b6040516102b09190610d68565b60405180910390f35b6060600380546102c890610e9b565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610e9b565b801561033f5780601f106103165761010080835404028352916020019161033f565b820191905f5260205f20905b81548152906001019060200180831161032257829003601f168201915b5050505050905090565b5f806103536105ab565b90506103608185856105b2565b600191505092915050565b5f600254905090565b5f8061037e6105ab565b905061038b8582856105c4565b610396858585610656565b60019150509392505050565b6005602052805f5260405f205f915090505481565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461041390610e9b565b80601f016020809104026020016040519081016040528092919081815260200182805461043f90610e9b565b801561048a5780601f106104615761010080835404028352916020019161048a565b820191905f5260205f20905b81548152906001019060200180831161046d57829003601f168201915b5050505050905090565b5f8061049e6105ab565b90506104ab818585610656565b600191505092915050565b3460055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f67016345785d8a00006103e8346105109190610ef8565b61051a9190610f66565b90506105263382610746565b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6105bf83838360016107c5565b505050565b5f6105cf8484610529565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106505781811015610641578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161063893929190610fa5565b60405180910390fd5b61064f84848484035f6107c5565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106c6575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106bd9190610fda565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610736575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161072d9190610fda565b60405180910390fd5b610741838383610994565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107b6575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107ad9190610fda565b60405180910390fd5b6107c15f8383610994565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610835575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161082c9190610fda565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108a5575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161089c9190610fda565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561098e578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109859190610d68565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109e4578060025f8282546109d89190610ff3565b92505081905550610ab2565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610a6d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610a6493929190610fa5565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610af9578060025f8282540392505081905550610b43565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ba09190610d68565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610be4578082015181840152602081019050610bc9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610c0982610bad565b610c138185610bb7565b9350610c23818560208601610bc7565b610c2c81610bef565b840191505092915050565b5f6020820190508181035f830152610c4f8184610bff565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c8482610c5b565b9050919050565b610c9481610c7a565b8114610c9e575f80fd5b50565b5f81359050610caf81610c8b565b92915050565b5f819050919050565b610cc781610cb5565b8114610cd1575f80fd5b50565b5f81359050610ce281610cbe565b92915050565b5f8060408385031215610cfe57610cfd610c57565b5b5f610d0b85828601610ca1565b9250506020610d1c85828601610cd4565b9150509250929050565b5f8115159050919050565b610d3a81610d26565b82525050565b5f602082019050610d535f830184610d31565b92915050565b610d6281610cb5565b82525050565b5f602082019050610d7b5f830184610d59565b92915050565b5f805f60608486031215610d9857610d97610c57565b5b5f610da586828701610ca1565b9350506020610db686828701610ca1565b9250506040610dc786828701610cd4565b9150509250925092565b5f60208284031215610de657610de5610c57565b5b5f610df384828501610ca1565b91505092915050565b5f60ff82169050919050565b610e1181610dfc565b82525050565b5f602082019050610e2a5f830184610e08565b92915050565b5f8060408385031215610e4657610e45610c57565b5b5f610e5385828601610ca1565b9250506020610e6485828601610ca1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610eb257607f821691505b602082108103610ec557610ec4610e6e565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f0282610cb5565b9150610f0d83610cb5565b9250828202610f1b81610cb5565b91508282048414831517610f3257610f31610ecb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610f7082610cb5565b9150610f7b83610cb5565b925082610f8b57610f8a610f39565b5b828204905092915050565b610f9f81610c7a565b82525050565b5f606082019050610fb85f830186610f96565b610fc56020830185610d59565b610fd26040830184610d59565b949350505050565b5f602082019050610fed5f830184610f96565b92915050565b5f610ffd82610cb5565b915061100883610cb5565b92508282019050808211156110205761101f610ecb565b5b9291505056fea2646970667358221220245e38400c9a3a74bad5a90153389e21b93f4d270ef7697da3139689a76d25ad64736f6c63430008180033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x566965746E616D00000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x564E000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8E SWAP2 SWAP1 PUSH3 0x30D JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA0 SWAP2 SWAP1 PUSH3 0x30D JUMP JUMPDEST POP POP POP PUSH3 0x3F1 JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x125 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x13B JUMPI PUSH3 0x13A PUSH3 0xE0 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH3 0x19F PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x162 JUMP JUMPDEST PUSH3 0x1AB DUP7 DUP4 PUSH3 0x162 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x1F5 PUSH3 0x1EF PUSH3 0x1E9 DUP5 PUSH3 0x1C3 JUMP JUMPDEST PUSH3 0x1CC JUMP JUMPDEST PUSH3 0x1C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x210 DUP4 PUSH3 0x1D5 JUMP JUMPDEST PUSH3 0x228 PUSH3 0x21F DUP3 PUSH3 0x1FC JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x16E JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH3 0x23E PUSH3 0x230 JUMP JUMPDEST PUSH3 0x24B DUP2 DUP5 DUP5 PUSH3 0x205 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x272 JUMPI PUSH3 0x266 PUSH0 DUP3 PUSH3 0x234 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x251 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2C1 JUMPI PUSH3 0x28B DUP2 PUSH3 0x141 JUMP JUMPDEST PUSH3 0x296 DUP5 PUSH3 0x153 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2A6 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2BE PUSH3 0x2B5 DUP6 PUSH3 0x153 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x250 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2E3 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2C6 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2FD DUP4 DUP4 PUSH3 0x2D2 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x318 DUP3 PUSH3 0xA9 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x334 JUMPI PUSH3 0x333 PUSH3 0xB3 JUMP JUMPDEST JUMPDEST PUSH3 0x340 DUP3 SLOAD PUSH3 0x10D JUMP JUMPDEST PUSH3 0x34D DUP3 DUP3 DUP6 PUSH3 0x276 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x383 JUMPI PUSH0 DUP5 ISZERO PUSH3 0x36E JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x37A DUP6 DUP3 PUSH3 0x2F0 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x3E9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x393 DUP7 PUSH3 0x141 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3BC 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 0x395 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3DC JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3D8 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2D2 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 0x105C DUP1 PUSH3 0x3FF PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x313CE567 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x237 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x27D JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x23E3FBD5 EQ PUSH2 0x16B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xEF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEA SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST PUSH2 0x349 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFC SWAP2 SWAP1 PUSH2 0xD40 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x110 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x119 PUSH2 0x36B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x126 SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0xD81 JUMP JUMPDEST PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0xD40 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x176 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x191 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xDD1 JUMP JUMPDEST PUSH2 0x3A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19E SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB PUSH2 0x3B7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0xE17 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0xDD1 JUMP JUMPDEST PUSH2 0x3BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x204 SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x218 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x221 PUSH2 0x404 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x242 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x258 SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST PUSH2 0x494 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26A SWAP2 SWAP1 PUSH2 0xD40 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x27B PUSH2 0x4B6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x529 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2C8 SWAP1 PUSH2 0xE9B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2F4 SWAP1 PUSH2 0xE9B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x33F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x316 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x33F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x322 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x353 PUSH2 0x5AB JUMP JUMPDEST SWAP1 POP PUSH2 0x360 DUP2 DUP6 DUP6 PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x37E PUSH2 0x5AB JUMP JUMPDEST SWAP1 POP PUSH2 0x38B DUP6 DUP3 DUP6 PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x396 DUP6 DUP6 DUP6 PUSH2 0x656 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x413 SWAP1 PUSH2 0xE9B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0xE9B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x48A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x461 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x48A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x46D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x49E PUSH2 0x5AB JUMP JUMPDEST SWAP1 POP PUSH2 0x4AB DUP2 DUP6 DUP6 PUSH2 0x656 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE PUSH1 0x5 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH0 PUSH8 0x16345785D8A0000 PUSH2 0x3E8 CALLVALUE PUSH2 0x510 SWAP2 SWAP1 PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0x51A SWAP2 SWAP1 PUSH2 0xF66 JUMP JUMPDEST SWAP1 POP PUSH2 0x526 CALLER DUP3 PUSH2 0x746 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x5BF DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x7C5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5CF DUP5 DUP5 PUSH2 0x529 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x650 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x641 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x638 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64F DUP5 DUP5 DUP5 DUP5 SUB PUSH0 PUSH2 0x7C5 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C6 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BD SWAP2 SWAP1 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x736 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72D SWAP2 SWAP1 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x741 DUP4 DUP4 DUP4 PUSH2 0x994 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B6 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AD SWAP2 SWAP1 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7C1 PUSH0 DUP4 DUP4 PUSH2 0x994 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x835 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x82C SWAP2 SWAP1 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8A5 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x98E JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x985 SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x9E4 JUMPI DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x9D8 SWAP2 SWAP1 PUSH2 0xFF3 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xAB2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xA6D JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA64 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xAF9 JUMPI DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xB43 JUMP JUMPDEST DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xBA0 SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xBE4 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xBC9 JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC09 DUP3 PUSH2 0xBAD JUMP JUMPDEST PUSH2 0xC13 DUP2 DUP6 PUSH2 0xBB7 JUMP JUMPDEST SWAP4 POP PUSH2 0xC23 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0xC2C DUP2 PUSH2 0xBEF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xC4F DUP2 DUP5 PUSH2 0xBFF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC84 DUP3 PUSH2 0xC5B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC94 DUP2 PUSH2 0xC7A JUMP JUMPDEST DUP2 EQ PUSH2 0xC9E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCAF DUP2 PUSH2 0xC8B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCC7 DUP2 PUSH2 0xCB5 JUMP JUMPDEST DUP2 EQ PUSH2 0xCD1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCE2 DUP2 PUSH2 0xCBE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCFE JUMPI PUSH2 0xCFD PUSH2 0xC57 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD0B DUP6 DUP3 DUP7 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD1C DUP6 DUP3 DUP7 ADD PUSH2 0xCD4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD3A DUP2 PUSH2 0xD26 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD53 PUSH0 DUP4 ADD DUP5 PUSH2 0xD31 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD62 DUP2 PUSH2 0xCB5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD7B PUSH0 DUP4 ADD DUP5 PUSH2 0xD59 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD98 JUMPI PUSH2 0xD97 PUSH2 0xC57 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDA5 DUP7 DUP3 DUP8 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xDB6 DUP7 DUP3 DUP8 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xDC7 DUP7 DUP3 DUP8 ADD PUSH2 0xCD4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDE6 JUMPI PUSH2 0xDE5 PUSH2 0xC57 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDF3 DUP5 DUP3 DUP6 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE11 DUP2 PUSH2 0xDFC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE2A PUSH0 DUP4 ADD DUP5 PUSH2 0xE08 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE46 JUMPI PUSH2 0xE45 PUSH2 0xC57 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE53 DUP6 DUP3 DUP7 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE64 DUP6 DUP3 DUP7 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xEB2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xEC5 JUMPI PUSH2 0xEC4 PUSH2 0xE6E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xF02 DUP3 PUSH2 0xCB5 JUMP JUMPDEST SWAP2 POP PUSH2 0xF0D DUP4 PUSH2 0xCB5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xF1B DUP2 PUSH2 0xCB5 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xF32 JUMPI PUSH2 0xF31 PUSH2 0xECB JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xF70 DUP3 PUSH2 0xCB5 JUMP JUMPDEST SWAP2 POP PUSH2 0xF7B DUP4 PUSH2 0xCB5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xF8B JUMPI PUSH2 0xF8A PUSH2 0xF39 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF9F DUP2 PUSH2 0xC7A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xFB8 PUSH0 DUP4 ADD DUP7 PUSH2 0xF96 JUMP JUMPDEST PUSH2 0xFC5 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xD59 JUMP JUMPDEST PUSH2 0xFD2 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xD59 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFED PUSH0 DUP4 ADD DUP5 PUSH2 0xF96 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFFD DUP3 PUSH2 0xCB5 JUMP JUMPDEST SWAP2 POP PUSH2 0x1008 DUP4 PUSH2 0xCB5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1020 JUMPI PUSH2 0x101F PUSH2 0xECB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 MCOPY CODESIZE BLOCKHASH 0xC SWAP11 GASPRICE PUSH21 0xBAD5A90153389E21B93F4D270EF7697DA3139689A7 PUSH14 0x25AD64736F6C6343000818003300 ",
"sourceMap": "115:424:5:-:0;;;206:54;;;;;;;;;;1896:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1970:5;1962;:13;;;;;;:::i;:::-;;1995:7;1985;:17;;;;;;:::i;:::-;;1896:113;;115:424:5;;7:99:6;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;115:424:5:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_approve_542": {
"entryPoint": 1458,
"id": 542,
"parameterSlots": 3,
"returnSlots": 0
},
"@_approve_602": {
"entryPoint": 1989,
"id": 602,
"parameterSlots": 4,
"returnSlots": 0
},
"@_mint_491": {
"entryPoint": 1862,
"id": 491,
"parameterSlots": 2,
"returnSlots": 0
},
"@_msgSender_767": {
"entryPoint": 1451,
"id": 767,
"parameterSlots": 0,
"returnSlots": 1
},
"@_spendAllowance_650": {
"entryPoint": 1476,
"id": 650,
"parameterSlots": 3,
"returnSlots": 0
},
"@_transfer_381": {
"entryPoint": 1622,
"id": 381,
"parameterSlots": 3,
"returnSlots": 0
},
"@_update_458": {
"entryPoint": 2452,
"id": 458,
"parameterSlots": 3,
"returnSlots": 0
},
"@allowance_278": {
"entryPoint": 1321,
"id": 278,
"parameterSlots": 2,
"returnSlots": 1
},
"@approve_302": {
"entryPoint": 841,
"id": 302,
"parameterSlots": 2,
"returnSlots": 1
},
"@balanceOf_237": {
"entryPoint": 959,
"id": 237,
"parameterSlots": 1,
"returnSlots": 1
},
"@decimals_215": {
"entryPoint": 951,
"id": 215,
"parameterSlots": 0,
"returnSlots": 1
},
"@depositOf_794": {
"entryPoint": 930,
"id": 794,
"parameterSlots": 0,
"returnSlots": 0
},
"@deposit_835": {
"entryPoint": 1206,
"id": 835,
"parameterSlots": 0,
"returnSlots": 0
},
"@name_197": {
"entryPoint": 697,
"id": 197,
"parameterSlots": 0,
"returnSlots": 1
},
"@symbol_206": {
"entryPoint": 1028,
"id": 206,
"parameterSlots": 0,
"returnSlots": 1
},
"@totalSupply_224": {
"entryPoint": 875,
"id": 224,
"parameterSlots": 0,
"returnSlots": 1
},
"@transferFrom_334": {
"entryPoint": 884,
"id": 334,
"parameterSlots": 3,
"returnSlots": 1
},
"@transfer_261": {
"entryPoint": 1172,
"id": 261,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 3233,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 3284,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 3537,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 3632,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_uint256": {
"entryPoint": 3457,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 3304,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 3990,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 3377,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3071,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 3417,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint8_to_t_uint8_fromStack": {
"entryPoint": 3592,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 4058,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 4005,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 3392,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3127,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 3432,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
"entryPoint": 3607,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 2989,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 2999,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 4083,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 3942,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 3832,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 3194,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 3366,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 3163,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 3253,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint8": {
"entryPoint": 3580,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 3015,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 3739,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 3787,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x12": {
"entryPoint": 3897,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 3694,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 3159,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 3055,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 3211,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 3262,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:8153:6",
"nodeType": "YulBlock",
"src": "0:8153:6",
"statements": [
{
"body": {
"nativeSrc": "66:40:6",
"nodeType": "YulBlock",
"src": "66:40:6",
"statements": [
{
"nativeSrc": "77:22:6",
"nodeType": "YulAssignment",
"src": "77:22:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "93:5:6",
"nodeType": "YulIdentifier",
"src": "93:5:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "87:5:6",
"nodeType": "YulIdentifier",
"src": "87:5:6"
},
"nativeSrc": "87:12:6",
"nodeType": "YulFunctionCall",
"src": "87:12:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "77:6:6",
"nodeType": "YulIdentifier",
"src": "77:6:6"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "7:99:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "49:5:6",
"nodeType": "YulTypedName",
"src": "49:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "59:6:6",
"nodeType": "YulTypedName",
"src": "59:6:6",
"type": ""
}
],
"src": "7:99:6"
},
{
"body": {
"nativeSrc": "208:73:6",
"nodeType": "YulBlock",
"src": "208:73:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "225:3:6",
"nodeType": "YulIdentifier",
"src": "225:3:6"
},
{
"name": "length",
"nativeSrc": "230:6:6",
"nodeType": "YulIdentifier",
"src": "230:6:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "218:6:6",
"nodeType": "YulIdentifier",
"src": "218:6:6"
},
"nativeSrc": "218:19:6",
"nodeType": "YulFunctionCall",
"src": "218:19:6"
},
"nativeSrc": "218:19:6",
"nodeType": "YulExpressionStatement",
"src": "218:19:6"
},
{
"nativeSrc": "246:29:6",
"nodeType": "YulAssignment",
"src": "246:29:6",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "265:3:6",
"nodeType": "YulIdentifier",
"src": "265:3:6"
},
{
"kind": "number",
"nativeSrc": "270:4:6",
"nodeType": "YulLiteral",
"src": "270:4:6",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "261:3:6",
"nodeType": "YulIdentifier",
"src": "261:3:6"
},
"nativeSrc": "261:14:6",
"nodeType": "YulFunctionCall",
"src": "261:14:6"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "246:11:6",
"nodeType": "YulIdentifier",
"src": "246:11:6"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "112:169:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "180:3:6",
"nodeType": "YulTypedName",
"src": "180:3:6",
"type": ""
},
{
"name": "length",
"nativeSrc": "185:6:6",
"nodeType": "YulTypedName",
"src": "185:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "196:11:6",
"nodeType": "YulTypedName",
"src": "196:11:6",
"type": ""
}
],
"src": "112:169:6"
},
{
"body": {
"nativeSrc": "349:184:6",
"nodeType": "YulBlock",
"src": "349:184:6",
"statements": [
{
"nativeSrc": "359:10:6",
"nodeType": "YulVariableDeclaration",
"src": "359:10:6",
"value": {
"kind": "number",
"nativeSrc": "368:1:6",
"nodeType": "YulLiteral",
"src": "368:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "363:1:6",
"nodeType": "YulTypedName",
"src": "363:1:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "428:63:6",
"nodeType": "YulBlock",
"src": "428:63:6",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "453:3:6",
"nodeType": "YulIdentifier",
"src": "453:3:6"
},
{
"name": "i",
"nativeSrc": "458:1:6",
"nodeType": "YulIdentifier",
"src": "458:1:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "449:3:6",
"nodeType": "YulIdentifier",
"src": "449:3:6"
},
"nativeSrc": "449:11:6",
"nodeType": "YulFunctionCall",
"src": "449:11:6"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "472:3:6",
"nodeType": "YulIdentifier",
"src": "472:3:6"
},
{
"name": "i",
"nativeSrc": "477:1:6",
"nodeType": "YulIdentifier",
"src": "477:1:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "468:3:6",
"nodeType": "YulIdentifier",
"src": "468:3:6"
},
"nativeSrc": "468:11:6",
"nodeType": "YulFunctionCall",
"src": "468:11:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "462:5:6",
"nodeType": "YulIdentifier",
"src": "462:5:6"
},
"nativeSrc": "462:18:6",
"nodeType": "YulFunctionCall",
"src": "462:18:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "442:6:6",
"nodeType": "YulIdentifier",
"src": "442:6:6"
},
"nativeSrc": "442:39:6",
"nodeType": "YulFunctionCall",
"src": "442:39:6"
},
"nativeSrc": "442:39:6",
"nodeType": "YulExpressionStatement",
"src": "442:39:6"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "389:1:6",
"nodeType": "YulIdentifier",
"src": "389:1:6"
},
{
"name": "length",
"nativeSrc": "392:6:6",
"nodeType": "YulIdentifier",
"src": "392:6:6"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "386:2:6",
"nodeType": "YulIdentifier",
"src": "386:2:6"
},
"nativeSrc": "386:13:6",
"nodeType": "YulFunctionCall",
"src": "386:13:6"
},
"nativeSrc": "378:113:6",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "400:19:6",
"nodeType": "YulBlock",
"src": "400:19:6",
"statements": [
{
"nativeSrc": "402:15:6",
"nodeType": "YulAssignment",
"src": "402:15:6",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "411:1:6",
"nodeType": "YulIdentifier",
"src": "411:1:6"
},
{
"kind": "number",
"nativeSrc": "414:2:6",
"nodeType": "YulLiteral",
"src": "414:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "407:3:6",
"nodeType": "YulIdentifier",
"src": "407:3:6"
},
"nativeSrc": "407:10:6",
"nodeType": "YulFunctionCall",
"src": "407:10:6"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "402:1:6",
"nodeType": "YulIdentifier",
"src": "402:1:6"
}
]
}
]
},
"pre": {
"nativeSrc": "382:3:6",
"nodeType": "YulBlock",
"src": "382:3:6",
"statements": []
},
"src": "378:113:6"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "511:3:6",
"nodeType": "YulIdentifier",
"src": "511:3:6"
},
{
"name": "length",
"nativeSrc": "516:6:6",
"nodeType": "YulIdentifier",
"src": "516:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "507:3:6",
"nodeType": "YulIdentifier",
"src": "507:3:6"
},
"nativeSrc": "507:16:6",
"nodeType": "YulFunctionCall",
"src": "507:16:6"
},
{
"kind": "number",
"nativeSrc": "525:1:6",
"nodeType": "YulLiteral",
"src": "525:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "500:6:6",
"nodeType": "YulIdentifier",
"src": "500:6:6"
},
"nativeSrc": "500:27:6",
"nodeType": "YulFunctionCall",
"src": "500:27:6"
},
"nativeSrc": "500:27:6",
"nodeType": "YulExpressionStatement",
"src": "500:27:6"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "287:246:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "331:3:6",
"nodeType": "YulTypedName",
"src": "331:3:6",
"type": ""
},
{
"name": "dst",
"nativeSrc": "336:3:6",
"nodeType": "YulTypedName",
"src": "336:3:6",
"type": ""
},
{
"name": "length",
"nativeSrc": "341:6:6",
"nodeType": "YulTypedName",
"src": "341:6:6",
"type": ""
}
],
"src": "287:246:6"
},
{
"body": {
"nativeSrc": "587:54:6",
"nodeType": "YulBlock",
"src": "587:54:6",
"statements": [
{
"nativeSrc": "597:38:6",
"nodeType": "YulAssignment",
"src": "597:38:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "615:5:6",
"nodeType": "YulIdentifier",
"src": "615:5:6"
},
{
"kind": "number",
"nativeSrc": "622:2:6",
"nodeType": "YulLiteral",
"src": "622:2:6",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "611:3:6",
"nodeType": "YulIdentifier",
"src": "611:3:6"
},
"nativeSrc": "611:14:6",
"nodeType": "YulFunctionCall",
"src": "611:14:6"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "631:2:6",
"nodeType": "YulLiteral",
"src": "631:2:6",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "627:3:6",
"nodeType": "YulIdentifier",
"src": "627:3:6"
},
"nativeSrc": "627:7:6",
"nodeType": "YulFunctionCall",
"src": "627:7:6"
}
],
"functionName": {
"name": "and",
"nativeSrc": "607:3:6",
"nodeType": "YulIdentifier",
"src": "607:3:6"
},
"nativeSrc": "607:28:6",
"nodeType": "YulFunctionCall",
"src": "607:28:6"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "597:6:6",
"nodeType": "YulIdentifier",
"src": "597:6:6"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "539:102:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "570:5:6",
"nodeType": "YulTypedName",
"src": "570:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "580:6:6",
"nodeType": "YulTypedName",
"src": "580:6:6",
"type": ""
}
],
"src": "539:102:6"
},
{
"body": {
"nativeSrc": "739:285:6",
"nodeType": "YulBlock",
"src": "739:285:6",
"statements": [
{
"nativeSrc": "749:53:6",
"nodeType": "YulVariableDeclaration",
"src": "749:53:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "796:5:6",
"nodeType": "YulIdentifier",
"src": "796:5:6"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "763:32:6",
"nodeType": "YulIdentifier",
"src": "763:32:6"
},
"nativeSrc": "763:39:6",
"nodeType": "YulFunctionCall",
"src": "763:39:6"
},
"variables": [
{
"name": "length",
"nativeSrc": "753:6:6",
"nodeType": "YulTypedName",
"src": "753:6:6",
"type": ""
}
]
},
{
"nativeSrc": "811:78:6",
"nodeType": "YulAssignment",
"src": "811:78:6",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "877:3:6",
"nodeType": "YulIdentifier",
"src": "877:3:6"
},
{
"name": "length",
"nativeSrc": "882:6:6",
"nodeType": "YulIdentifier",
"src": "882:6:6"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "818:58:6",
"nodeType": "YulIdentifier",
"src": "818:58:6"
},
"nativeSrc": "818:71:6",
"nodeType": "YulFunctionCall",
"src": "818:71:6"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "811:3:6",
"nodeType": "YulIdentifier",
"src": "811:3:6"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "937:5:6",
"nodeType": "YulIdentifier",
"src": "937:5:6"
},
{
"kind": "number",
"nativeSrc": "944:4:6",
"nodeType": "YulLiteral",
"src": "944:4:6",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "933:3:6",
"nodeType": "YulIdentifier",
"src": "933:3:6"
},
"nativeSrc": "933:16:6",
"nodeType": "YulFunctionCall",
"src": "933:16:6"
},
{
"name": "pos",
"nativeSrc": "951:3:6",
"nodeType": "YulIdentifier",
"src": "951:3:6"
},
{
"name": "length",
"nativeSrc": "956:6:6",
"nodeType": "YulIdentifier",
"src": "956:6:6"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "898:34:6",
"nodeType": "YulIdentifier",
"src": "898:34:6"
},
"nativeSrc": "898:65:6",
"nodeType": "YulFunctionCall",
"src": "898:65:6"
},
"nativeSrc": "898:65:6",
"nodeType": "YulExpressionStatement",
"src": "898:65:6"
},
{
"nativeSrc": "972:46:6",
"nodeType": "YulAssignment",
"src": "972:46:6",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "983:3:6",
"nodeType": "YulIdentifier",
"src": "983:3:6"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "1010:6:6",
"nodeType": "YulIdentifier",
"src": "1010:6:6"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "988:21:6",
"nodeType": "YulIdentifier",
"src": "988:21:6"
},
"nativeSrc": "988:29:6",
"nodeType": "YulFunctionCall",
"src": "988:29:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "979:3:6",
"nodeType": "YulIdentifier",
"src": "979:3:6"
},
"nativeSrc": "979:39:6",
"nodeType": "YulFunctionCall",
"src": "979:39:6"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "972:3:6",
"nodeType": "YulIdentifier",
"src": "972:3:6"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "647:377:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "720:5:6",
"nodeType": "YulTypedName",
"src": "720:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "727:3:6",
"nodeType": "YulTypedName",
"src": "727:3:6",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "735:3:6",
"nodeType": "YulTypedName",
"src": "735:3:6",
"type": ""
}
],
"src": "647:377:6"
},
{
"body": {
"nativeSrc": "1148:195:6",
"nodeType": "YulBlock",
"src": "1148:195:6",
"statements": [
{
"nativeSrc": "1158:26:6",
"nodeType": "YulAssignment",
"src": "1158:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1170:9:6",
"nodeType": "YulIdentifier",
"src": "1170:9:6"
},
{
"kind": "number",
"nativeSrc": "1181:2:6",
"nodeType": "YulLiteral",
"src": "1181:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1166:3:6",
"nodeType": "YulIdentifier",
"src": "1166:3:6"
},
"nativeSrc": "1166:18:6",
"nodeType": "YulFunctionCall",
"src": "1166:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1158:4:6",
"nodeType": "YulIdentifier",
"src": "1158:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1205:9:6",
"nodeType": "YulIdentifier",
"src": "1205:9:6"
},
{
"kind": "number",
"nativeSrc": "1216:1:6",
"nodeType": "YulLiteral",
"src": "1216:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1201:3:6",
"nodeType": "YulIdentifier",
"src": "1201:3:6"
},
"nativeSrc": "1201:17:6",
"nodeType": "YulFunctionCall",
"src": "1201:17:6"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "1224:4:6",
"nodeType": "YulIdentifier",
"src": "1224:4:6"
},
{
"name": "headStart",
"nativeSrc": "1230:9:6",
"nodeType": "YulIdentifier",
"src": "1230:9:6"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1220:3:6",
"nodeType": "YulIdentifier",
"src": "1220:3:6"
},
"nativeSrc": "1220:20:6",
"nodeType": "YulFunctionCall",
"src": "1220:20:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1194:6:6",
"nodeType": "YulIdentifier",
"src": "1194:6:6"
},
"nativeSrc": "1194:47:6",
"nodeType": "YulFunctionCall",
"src": "1194:47:6"
},
"nativeSrc": "1194:47:6",
"nodeType": "YulExpressionStatement",
"src": "1194:47:6"
},
{
"nativeSrc": "1250:86:6",
"nodeType": "YulAssignment",
"src": "1250:86:6",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "1322:6:6",
"nodeType": "YulIdentifier",
"src": "1322:6:6"
},
{
"name": "tail",
"nativeSrc": "1331:4:6",
"nodeType": "YulIdentifier",
"src": "1331:4:6"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "1258:63:6",
"nodeType": "YulIdentifier",
"src": "1258:63:6"
},
"nativeSrc": "1258:78:6",
"nodeType": "YulFunctionCall",
"src": "1258:78:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1250:4:6",
"nodeType": "YulIdentifier",
"src": "1250:4:6"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "1030:313:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1120:9:6",
"nodeType": "YulTypedName",
"src": "1120:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1132:6:6",
"nodeType": "YulTypedName",
"src": "1132:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1143:4:6",
"nodeType": "YulTypedName",
"src": "1143:4:6",
"type": ""
}
],
"src": "1030:313:6"
},
{
"body": {
"nativeSrc": "1389:35:6",
"nodeType": "YulBlock",
"src": "1389:35:6",
"statements": [
{
"nativeSrc": "1399:19:6",
"nodeType": "YulAssignment",
"src": "1399:19:6",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1415:2:6",
"nodeType": "YulLiteral",
"src": "1415:2:6",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "1409:5:6",
"nodeType": "YulIdentifier",
"src": "1409:5:6"
},
"nativeSrc": "1409:9:6",
"nodeType": "YulFunctionCall",
"src": "1409:9:6"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "1399:6:6",
"nodeType": "YulIdentifier",
"src": "1399:6:6"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "1349:75:6",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "1382:6:6",
"nodeType": "YulTypedName",
"src": "1382:6:6",
"type": ""
}
],
"src": "1349:75:6"
},
{
"body": {
"nativeSrc": "1519:28:6",
"nodeType": "YulBlock",
"src": "1519:28:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1536:1:6",
"nodeType": "YulLiteral",
"src": "1536:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1539:1:6",
"nodeType": "YulLiteral",
"src": "1539:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1529:6:6",
"nodeType": "YulIdentifier",
"src": "1529:6:6"
},
"nativeSrc": "1529:12:6",
"nodeType": "YulFunctionCall",
"src": "1529:12:6"
},
"nativeSrc": "1529:12:6",
"nodeType": "YulExpressionStatement",
"src": "1529:12:6"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "1430:117:6",
"nodeType": "YulFunctionDefinition",
"src": "1430:117:6"
},
{
"body": {
"nativeSrc": "1642:28:6",
"nodeType": "YulBlock",
"src": "1642:28:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1659:1:6",
"nodeType": "YulLiteral",
"src": "1659:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1662:1:6",
"nodeType": "YulLiteral",
"src": "1662:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1652:6:6",
"nodeType": "YulIdentifier",
"src": "1652:6:6"
},
"nativeSrc": "1652:12:6",
"nodeType": "YulFunctionCall",
"src": "1652:12:6"
},
"nativeSrc": "1652:12:6",
"nodeType": "YulExpressionStatement",
"src": "1652:12:6"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "1553:117:6",
"nodeType": "YulFunctionDefinition",
"src": "1553:117:6"
},
{
"body": {
"nativeSrc": "1721:81:6",
"nodeType": "YulBlock",
"src": "1721:81:6",
"statements": [
{
"nativeSrc": "1731:65:6",
"nodeType": "YulAssignment",
"src": "1731:65:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1746:5:6",
"nodeType": "YulIdentifier",
"src": "1746:5:6"
},
{
"kind": "number",
"nativeSrc": "1753:42:6",
"nodeType": "YulLiteral",
"src": "1753:42:6",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1742:3:6",
"nodeType": "YulIdentifier",
"src": "1742:3:6"
},
"nativeSrc": "1742:54:6",
"nodeType": "YulFunctionCall",
"src": "1742:54:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1731:7:6",
"nodeType": "YulIdentifier",
"src": "1731:7:6"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "1676:126:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1703:5:6",
"nodeType": "YulTypedName",
"src": "1703:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1713:7:6",
"nodeType": "YulTypedName",
"src": "1713:7:6",
"type": ""
}
],
"src": "1676:126:6"
},
{
"body": {
"nativeSrc": "1853:51:6",
"nodeType": "YulBlock",
"src": "1853:51:6",
"statements": [
{
"nativeSrc": "1863:35:6",
"nodeType": "YulAssignment",
"src": "1863:35:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1892:5:6",
"nodeType": "YulIdentifier",
"src": "1892:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "1874:17:6",
"nodeType": "YulIdentifier",
"src": "1874:17:6"
},
"nativeSrc": "1874:24:6",
"nodeType": "YulFunctionCall",
"src": "1874:24:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1863:7:6",
"nodeType": "YulIdentifier",
"src": "1863:7:6"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "1808:96:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1835:5:6",
"nodeType": "YulTypedName",
"src": "1835:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1845:7:6",
"nodeType": "YulTypedName",
"src": "1845:7:6",
"type": ""
}
],
"src": "1808:96:6"
},
{
"body": {
"nativeSrc": "1953:79:6",
"nodeType": "YulBlock",
"src": "1953:79:6",
"statements": [
{
"body": {
"nativeSrc": "2010:16:6",
"nodeType": "YulBlock",
"src": "2010:16:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2019:1:6",
"nodeType": "YulLiteral",
"src": "2019:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2022:1:6",
"nodeType": "YulLiteral",
"src": "2022:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2012:6:6",
"nodeType": "YulIdentifier",
"src": "2012:6:6"
},
"nativeSrc": "2012:12:6",
"nodeType": "YulFunctionCall",
"src": "2012:12:6"
},
"nativeSrc": "2012:12:6",
"nodeType": "YulExpressionStatement",
"src": "2012:12:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1976:5:6",
"nodeType": "YulIdentifier",
"src": "1976:5:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2001:5:6",
"nodeType": "YulIdentifier",
"src": "2001:5:6"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "1983:17:6",
"nodeType": "YulIdentifier",
"src": "1983:17:6"
},
"nativeSrc": "1983:24:6",
"nodeType": "YulFunctionCall",
"src": "1983:24:6"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "1973:2:6",
"nodeType": "YulIdentifier",
"src": "1973:2:6"
},
"nativeSrc": "1973:35:6",
"nodeType": "YulFunctionCall",
"src": "1973:35:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1966:6:6",
"nodeType": "YulIdentifier",
"src": "1966:6:6"
},
"nativeSrc": "1966:43:6",
"nodeType": "YulFunctionCall",
"src": "1966:43:6"
},
"nativeSrc": "1963:63:6",
"nodeType": "YulIf",
"src": "1963:63:6"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "1910:122:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1946:5:6",
"nodeType": "YulTypedName",
"src": "1946:5:6",
"type": ""
}
],
"src": "1910:122:6"
},
{
"body": {
"nativeSrc": "2090:87:6",
"nodeType": "YulBlock",
"src": "2090:87:6",
"statements": [
{
"nativeSrc": "2100:29:6",
"nodeType": "YulAssignment",
"src": "2100:29:6",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2122:6:6",
"nodeType": "YulIdentifier",
"src": "2122:6:6"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "2109:12:6",
"nodeType": "YulIdentifier",
"src": "2109:12:6"
},
"nativeSrc": "2109:20:6",
"nodeType": "YulFunctionCall",
"src": "2109:20:6"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2100:5:6",
"nodeType": "YulIdentifier",
"src": "2100:5:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2165:5:6",
"nodeType": "YulIdentifier",
"src": "2165:5:6"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "2138:26:6",
"nodeType": "YulIdentifier",
"src": "2138:26:6"
},
"nativeSrc": "2138:33:6",
"nodeType": "YulFunctionCall",
"src": "2138:33:6"
},
"nativeSrc": "2138:33:6",
"nodeType": "YulExpressionStatement",
"src": "2138:33:6"
}
]
},
"name": "abi_decode_t_address",
"nativeSrc": "2038:139:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2068:6:6",
"nodeType": "YulTypedName",
"src": "2068:6:6",
"type": ""
},
{
"name": "end",
"nativeSrc": "2076:3:6",
"nodeType": "YulTypedName",
"src": "2076:3:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2084:5:6",
"nodeType": "YulTypedName",
"src": "2084:5:6",
"type": ""
}
],
"src": "2038:139:6"
},
{
"body": {
"nativeSrc": "2228:32:6",
"nodeType": "YulBlock",
"src": "2228:32:6",
"statements": [
{
"nativeSrc": "2238:16:6",
"nodeType": "YulAssignment",
"src": "2238:16:6",
"value": {
"name": "value",
"nativeSrc": "2249:5:6",
"nodeType": "YulIdentifier",
"src": "2249:5:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "2238:7:6",
"nodeType": "YulIdentifier",
"src": "2238:7:6"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "2183:77:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2210:5:6",
"nodeType": "YulTypedName",
"src": "2210:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "2220:7:6",
"nodeType": "YulTypedName",
"src": "2220:7:6",
"type": ""
}
],
"src": "2183:77:6"
},
{
"body": {
"nativeSrc": "2309:79:6",
"nodeType": "YulBlock",
"src": "2309:79:6",
"statements": [
{
"body": {
"nativeSrc": "2366:16:6",
"nodeType": "YulBlock",
"src": "2366:16:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2375:1:6",
"nodeType": "YulLiteral",
"src": "2375:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2378:1:6",
"nodeType": "YulLiteral",
"src": "2378:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2368:6:6",
"nodeType": "YulIdentifier",
"src": "2368:6:6"
},
"nativeSrc": "2368:12:6",
"nodeType": "YulFunctionCall",
"src": "2368:12:6"
},
"nativeSrc": "2368:12:6",
"nodeType": "YulExpressionStatement",
"src": "2368:12:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "2332:5:6",
"nodeType": "YulIdentifier",
"src": "2332:5:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2357:5:6",
"nodeType": "YulIdentifier",
"src": "2357:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2339:17:6",
"nodeType": "YulIdentifier",
"src": "2339:17:6"
},
"nativeSrc": "2339:24:6",
"nodeType": "YulFunctionCall",
"src": "2339:24:6"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "2329:2:6",
"nodeType": "YulIdentifier",
"src": "2329:2:6"
},
"nativeSrc": "2329:35:6",
"nodeType": "YulFunctionCall",
"src": "2329:35:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2322:6:6",
"nodeType": "YulIdentifier",
"src": "2322:6:6"
},
"nativeSrc": "2322:43:6",
"nodeType": "YulFunctionCall",
"src": "2322:43:6"
},
"nativeSrc": "2319:63:6",
"nodeType": "YulIf",
"src": "2319:63:6"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "2266:122:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2302:5:6",
"nodeType": "YulTypedName",
"src": "2302:5:6",
"type": ""
}
],
"src": "2266:122:6"
},
{
"body": {
"nativeSrc": "2446:87:6",
"nodeType": "YulBlock",
"src": "2446:87:6",
"statements": [
{
"nativeSrc": "2456:29:6",
"nodeType": "YulAssignment",
"src": "2456:29:6",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2478:6:6",
"nodeType": "YulIdentifier",
"src": "2478:6:6"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "2465:12:6",
"nodeType": "YulIdentifier",
"src": "2465:12:6"
},
"nativeSrc": "2465:20:6",
"nodeType": "YulFunctionCall",
"src": "2465:20:6"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2456:5:6",
"nodeType": "YulIdentifier",
"src": "2456:5:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2521:5:6",
"nodeType": "YulIdentifier",
"src": "2521:5:6"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "2494:26:6",
"nodeType": "YulIdentifier",
"src": "2494:26:6"
},
"nativeSrc": "2494:33:6",
"nodeType": "YulFunctionCall",
"src": "2494:33:6"
},
"nativeSrc": "2494:33:6",
"nodeType": "YulExpressionStatement",
"src": "2494:33:6"
}
]
},
"name": "abi_decode_t_uint256",
"nativeSrc": "2394:139:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2424:6:6",
"nodeType": "YulTypedName",
"src": "2424:6:6",
"type": ""
},
{
"name": "end",
"nativeSrc": "2432:3:6",
"nodeType": "YulTypedName",
"src": "2432:3:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2440:5:6",
"nodeType": "YulTypedName",
"src": "2440:5:6",
"type": ""
}
],
"src": "2394:139:6"
},
{
"body": {
"nativeSrc": "2622:391:6",
"nodeType": "YulBlock",
"src": "2622:391:6",
"statements": [
{
"body": {
"nativeSrc": "2668:83:6",
"nodeType": "YulBlock",
"src": "2668:83:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "2670:77:6",
"nodeType": "YulIdentifier",
"src": "2670:77:6"
},
"nativeSrc": "2670:79:6",
"nodeType": "YulFunctionCall",
"src": "2670:79:6"
},
"nativeSrc": "2670:79:6",
"nodeType": "YulExpressionStatement",
"src": "2670:79:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "2643:7:6",
"nodeType": "YulIdentifier",
"src": "2643:7:6"
},
{
"name": "headStart",
"nativeSrc": "2652:9:6",
"nodeType": "YulIdentifier",
"src": "2652:9:6"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "2639:3:6",
"nodeType": "YulIdentifier",
"src": "2639:3:6"
},
"nativeSrc": "2639:23:6",
"nodeType": "YulFunctionCall",
"src": "2639:23:6"
},
{
"kind": "number",
"nativeSrc": "2664:2:6",
"nodeType": "YulLiteral",
"src": "2664:2:6",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "2635:3:6",
"nodeType": "YulIdentifier",
"src": "2635:3:6"
},
"nativeSrc": "2635:32:6",
"nodeType": "YulFunctionCall",
"src": "2635:32:6"
},
"nativeSrc": "2632:119:6",
"nodeType": "YulIf",
"src": "2632:119:6"
},
{
"nativeSrc": "2761:117:6",
"nodeType": "YulBlock",
"src": "2761:117:6",
"statements": [
{
"nativeSrc": "2776:15:6",
"nodeType": "YulVariableDeclaration",
"src": "2776:15:6",
"value": {
"kind": "number",
"nativeSrc": "2790:1:6",
"nodeType": "YulLiteral",
"src": "2790:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2780:6:6",
"nodeType": "YulTypedName",
"src": "2780:6:6",
"type": ""
}
]
},
{
"nativeSrc": "2805:63:6",
"nodeType": "YulAssignment",
"src": "2805:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2840:9:6",
"nodeType": "YulIdentifier",
"src": "2840:9:6"
},
{
"name": "offset",
"nativeSrc": "2851:6:6",
"nodeType": "YulIdentifier",
"src": "2851:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2836:3:6",
"nodeType": "YulIdentifier",
"src": "2836:3:6"
},
"nativeSrc": "2836:22:6",
"nodeType": "YulFunctionCall",
"src": "2836:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "2860:7:6",
"nodeType": "YulIdentifier",
"src": "2860:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "2815:20:6",
"nodeType": "YulIdentifier",
"src": "2815:20:6"
},
"nativeSrc": "2815:53:6",
"nodeType": "YulFunctionCall",
"src": "2815:53:6"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "2805:6:6",
"nodeType": "YulIdentifier",
"src": "2805:6:6"
}
]
}
]
},
{
"nativeSrc": "2888:118:6",
"nodeType": "YulBlock",
"src": "2888:118:6",
"statements": [
{
"nativeSrc": "2903:16:6",
"nodeType": "YulVariableDeclaration",
"src": "2903:16:6",
"value": {
"kind": "number",
"nativeSrc": "2917:2:6",
"nodeType": "YulLiteral",
"src": "2917:2:6",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2907:6:6",
"nodeType": "YulTypedName",
"src": "2907:6:6",
"type": ""
}
]
},
{
"nativeSrc": "2933:63:6",
"nodeType": "YulAssignment",
"src": "2933:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2968:9:6",
"nodeType": "YulIdentifier",
"src": "2968:9:6"
},
{
"name": "offset",
"nativeSrc": "2979:6:6",
"nodeType": "YulIdentifier",
"src": "2979:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2964:3:6",
"nodeType": "YulIdentifier",
"src": "2964:3:6"
},
"nativeSrc": "2964:22:6",
"nodeType": "YulFunctionCall",
"src": "2964:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "2988:7:6",
"nodeType": "YulIdentifier",
"src": "2988:7:6"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "2943:20:6",
"nodeType": "YulIdentifier",
"src": "2943:20:6"
},
"nativeSrc": "2943:53:6",
"nodeType": "YulFunctionCall",
"src": "2943:53:6"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "2933:6:6",
"nodeType": "YulIdentifier",
"src": "2933:6:6"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nativeSrc": "2539:474:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "2584:9:6",
"nodeType": "YulTypedName",
"src": "2584:9:6",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "2595:7:6",
"nodeType": "YulTypedName",
"src": "2595:7:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "2607:6:6",
"nodeType": "YulTypedName",
"src": "2607:6:6",
"type": ""
},
{
"name": "value1",
"nativeSrc": "2615:6:6",
"nodeType": "YulTypedName",
"src": "2615:6:6",
"type": ""
}
],
"src": "2539:474:6"
},
{
"body": {
"nativeSrc": "3061:48:6",
"nodeType": "YulBlock",
"src": "3061:48:6",
"statements": [
{
"nativeSrc": "3071:32:6",
"nodeType": "YulAssignment",
"src": "3071:32:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "3096:5:6",
"nodeType": "YulIdentifier",
"src": "3096:5:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3089:6:6",
"nodeType": "YulIdentifier",
"src": "3089:6:6"
},
"nativeSrc": "3089:13:6",
"nodeType": "YulFunctionCall",
"src": "3089:13:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3082:6:6",
"nodeType": "YulIdentifier",
"src": "3082:6:6"
},
"nativeSrc": "3082:21:6",
"nodeType": "YulFunctionCall",
"src": "3082:21:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "3071:7:6",
"nodeType": "YulIdentifier",
"src": "3071:7:6"
}
]
}
]
},
"name": "cleanup_t_bool",
"nativeSrc": "3019:90:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3043:5:6",
"nodeType": "YulTypedName",
"src": "3043:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "3053:7:6",
"nodeType": "YulTypedName",
"src": "3053:7:6",
"type": ""
}
],
"src": "3019:90:6"
},
{
"body": {
"nativeSrc": "3174:50:6",
"nodeType": "YulBlock",
"src": "3174:50:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3191:3:6",
"nodeType": "YulIdentifier",
"src": "3191:3:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "3211:5:6",
"nodeType": "YulIdentifier",
"src": "3211:5:6"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "3196:14:6",
"nodeType": "YulIdentifier",
"src": "3196:14:6"
},
"nativeSrc": "3196:21:6",
"nodeType": "YulFunctionCall",
"src": "3196:21:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3184:6:6",
"nodeType": "YulIdentifier",
"src": "3184:6:6"
},
"nativeSrc": "3184:34:6",
"nodeType": "YulFunctionCall",
"src": "3184:34:6"
},
"nativeSrc": "3184:34:6",
"nodeType": "YulExpressionStatement",
"src": "3184:34:6"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "3115:109:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3162:5:6",
"nodeType": "YulTypedName",
"src": "3162:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3169:3:6",
"nodeType": "YulTypedName",
"src": "3169:3:6",
"type": ""
}
],
"src": "3115:109:6"
},
{
"body": {
"nativeSrc": "3322:118:6",
"nodeType": "YulBlock",
"src": "3322:118:6",
"statements": [
{
"nativeSrc": "3332:26:6",
"nodeType": "YulAssignment",
"src": "3332:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "3344:9:6",
"nodeType": "YulIdentifier",
"src": "3344:9:6"
},
{
"kind": "number",
"nativeSrc": "3355:2:6",
"nodeType": "YulLiteral",
"src": "3355:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3340:3:6",
"nodeType": "YulIdentifier",
"src": "3340:3:6"
},
"nativeSrc": "3340:18:6",
"nodeType": "YulFunctionCall",
"src": "3340:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "3332:4:6",
"nodeType": "YulIdentifier",
"src": "3332:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "3406:6:6",
"nodeType": "YulIdentifier",
"src": "3406:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3419:9:6",
"nodeType": "YulIdentifier",
"src": "3419:9:6"
},
{
"kind": "number",
"nativeSrc": "3430:1:6",
"nodeType": "YulLiteral",
"src": "3430:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3415:3:6",
"nodeType": "YulIdentifier",
"src": "3415:3:6"
},
"nativeSrc": "3415:17:6",
"nodeType": "YulFunctionCall",
"src": "3415:17:6"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "3368:37:6",
"nodeType": "YulIdentifier",
"src": "3368:37:6"
},
"nativeSrc": "3368:65:6",
"nodeType": "YulFunctionCall",
"src": "3368:65:6"
},
"nativeSrc": "3368:65:6",
"nodeType": "YulExpressionStatement",
"src": "3368:65:6"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nativeSrc": "3230:210:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3294:9:6",
"nodeType": "YulTypedName",
"src": "3294:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "3306:6:6",
"nodeType": "YulTypedName",
"src": "3306:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "3317:4:6",
"nodeType": "YulTypedName",
"src": "3317:4:6",
"type": ""
}
],
"src": "3230:210:6"
},
{
"body": {
"nativeSrc": "3511:53:6",
"nodeType": "YulBlock",
"src": "3511:53:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3528:3:6",
"nodeType": "YulIdentifier",
"src": "3528:3:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "3551:5:6",
"nodeType": "YulIdentifier",
"src": "3551:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "3533:17:6",
"nodeType": "YulIdentifier",
"src": "3533:17:6"
},
"nativeSrc": "3533:24:6",
"nodeType": "YulFunctionCall",
"src": "3533:24:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3521:6:6",
"nodeType": "YulIdentifier",
"src": "3521:6:6"
},
"nativeSrc": "3521:37:6",
"nodeType": "YulFunctionCall",
"src": "3521:37:6"
},
"nativeSrc": "3521:37:6",
"nodeType": "YulExpressionStatement",
"src": "3521:37:6"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "3446:118:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3499:5:6",
"nodeType": "YulTypedName",
"src": "3499:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3506:3:6",
"nodeType": "YulTypedName",
"src": "3506:3:6",
"type": ""
}
],
"src": "3446:118:6"
},
{
"body": {
"nativeSrc": "3668:124:6",
"nodeType": "YulBlock",
"src": "3668:124:6",
"statements": [
{
"nativeSrc": "3678:26:6",
"nodeType": "YulAssignment",
"src": "3678:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "3690:9:6",
"nodeType": "YulIdentifier",
"src": "3690:9:6"
},
{
"kind": "number",
"nativeSrc": "3701:2:6",
"nodeType": "YulLiteral",
"src": "3701:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3686:3:6",
"nodeType": "YulIdentifier",
"src": "3686:3:6"
},
"nativeSrc": "3686:18:6",
"nodeType": "YulFunctionCall",
"src": "3686:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "3678:4:6",
"nodeType": "YulIdentifier",
"src": "3678:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "3758:6:6",
"nodeType": "YulIdentifier",
"src": "3758:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3771:9:6",
"nodeType": "YulIdentifier",
"src": "3771:9:6"
},
{
"kind": "number",
"nativeSrc": "3782:1:6",
"nodeType": "YulLiteral",
"src": "3782:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3767:3:6",
"nodeType": "YulIdentifier",
"src": "3767:3:6"
},
"nativeSrc": "3767:17:6",
"nodeType": "YulFunctionCall",
"src": "3767:17:6"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "3714:43:6",
"nodeType": "YulIdentifier",
"src": "3714:43:6"
},
"nativeSrc": "3714:71:6",
"nodeType": "YulFunctionCall",
"src": "3714:71:6"
},
"nativeSrc": "3714:71:6",
"nodeType": "YulExpressionStatement",
"src": "3714:71:6"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "3570:222:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3640:9:6",
"nodeType": "YulTypedName",
"src": "3640:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "3652:6:6",
"nodeType": "YulTypedName",
"src": "3652:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "3663:4:6",
"nodeType": "YulTypedName",
"src": "3663:4:6",
"type": ""
}
],
"src": "3570:222:6"
},
{
"body": {
"nativeSrc": "3898:519:6",
"nodeType": "YulBlock",
"src": "3898:519:6",
"statements": [
{
"body": {
"nativeSrc": "3944:83:6",
"nodeType": "YulBlock",
"src": "3944:83:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "3946:77:6",
"nodeType": "YulIdentifier",
"src": "3946:77:6"
},
"nativeSrc": "3946:79:6",
"nodeType": "YulFunctionCall",
"src": "3946:79:6"
},
"nativeSrc": "3946:79:6",
"nodeType": "YulExpressionStatement",
"src": "3946:79:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "3919:7:6",
"nodeType": "YulIdentifier",
"src": "3919:7:6"
},
{
"name": "headStart",
"nativeSrc": "3928:9:6",
"nodeType": "YulIdentifier",
"src": "3928:9:6"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "3915:3:6",
"nodeType": "YulIdentifier",
"src": "3915:3:6"
},
"nativeSrc": "3915:23:6",
"nodeType": "YulFunctionCall",
"src": "3915:23:6"
},
{
"kind": "number",
"nativeSrc": "3940:2:6",
"nodeType": "YulLiteral",
"src": "3940:2:6",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "3911:3:6",
"nodeType": "YulIdentifier",
"src": "3911:3:6"
},
"nativeSrc": "3911:32:6",
"nodeType": "YulFunctionCall",
"src": "3911:32:6"
},
"nativeSrc": "3908:119:6",
"nodeType": "YulIf",
"src": "3908:119:6"
},
{
"nativeSrc": "4037:117:6",
"nodeType": "YulBlock",
"src": "4037:117:6",
"statements": [
{
"nativeSrc": "4052:15:6",
"nodeType": "YulVariableDeclaration",
"src": "4052:15:6",
"value": {
"kind": "number",
"nativeSrc": "4066:1:6",
"nodeType": "YulLiteral",
"src": "4066:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4056:6:6",
"nodeType": "YulTypedName",
"src": "4056:6:6",
"type": ""
}
]
},
{
"nativeSrc": "4081:63:6",
"nodeType": "YulAssignment",
"src": "4081:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4116:9:6",
"nodeType": "YulIdentifier",
"src": "4116:9:6"
},
{
"name": "offset",
"nativeSrc": "4127:6:6",
"nodeType": "YulIdentifier",
"src": "4127:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4112:3:6",
"nodeType": "YulIdentifier",
"src": "4112:3:6"
},
"nativeSrc": "4112:22:6",
"nodeType": "YulFunctionCall",
"src": "4112:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "4136:7:6",
"nodeType": "YulIdentifier",
"src": "4136:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4091:20:6",
"nodeType": "YulIdentifier",
"src": "4091:20:6"
},
"nativeSrc": "4091:53:6",
"nodeType": "YulFunctionCall",
"src": "4091:53:6"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "4081:6:6",
"nodeType": "YulIdentifier",
"src": "4081:6:6"
}
]
}
]
},
{
"nativeSrc": "4164:118:6",
"nodeType": "YulBlock",
"src": "4164:118:6",
"statements": [
{
"nativeSrc": "4179:16:6",
"nodeType": "YulVariableDeclaration",
"src": "4179:16:6",
"value": {
"kind": "number",
"nativeSrc": "4193:2:6",
"nodeType": "YulLiteral",
"src": "4193:2:6",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4183:6:6",
"nodeType": "YulTypedName",
"src": "4183:6:6",
"type": ""
}
]
},
{
"nativeSrc": "4209:63:6",
"nodeType": "YulAssignment",
"src": "4209:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4244:9:6",
"nodeType": "YulIdentifier",
"src": "4244:9:6"
},
{
"name": "offset",
"nativeSrc": "4255:6:6",
"nodeType": "YulIdentifier",
"src": "4255:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4240:3:6",
"nodeType": "YulIdentifier",
"src": "4240:3:6"
},
"nativeSrc": "4240:22:6",
"nodeType": "YulFunctionCall",
"src": "4240:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "4264:7:6",
"nodeType": "YulIdentifier",
"src": "4264:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4219:20:6",
"nodeType": "YulIdentifier",
"src": "4219:20:6"
},
"nativeSrc": "4219:53:6",
"nodeType": "YulFunctionCall",
"src": "4219:53:6"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "4209:6:6",
"nodeType": "YulIdentifier",
"src": "4209:6:6"
}
]
}
]
},
{
"nativeSrc": "4292:118:6",
"nodeType": "YulBlock",
"src": "4292:118:6",
"statements": [
{
"nativeSrc": "4307:16:6",
"nodeType": "YulVariableDeclaration",
"src": "4307:16:6",
"value": {
"kind": "number",
"nativeSrc": "4321:2:6",
"nodeType": "YulLiteral",
"src": "4321:2:6",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4311:6:6",
"nodeType": "YulTypedName",
"src": "4311:6:6",
"type": ""
}
]
},
{
"nativeSrc": "4337:63:6",
"nodeType": "YulAssignment",
"src": "4337:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4372:9:6",
"nodeType": "YulIdentifier",
"src": "4372:9:6"
},
{
"name": "offset",
"nativeSrc": "4383:6:6",
"nodeType": "YulIdentifier",
"src": "4383:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4368:3:6",
"nodeType": "YulIdentifier",
"src": "4368:3:6"
},
"nativeSrc": "4368:22:6",
"nodeType": "YulFunctionCall",
"src": "4368:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "4392:7:6",
"nodeType": "YulIdentifier",
"src": "4392:7:6"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "4347:20:6",
"nodeType": "YulIdentifier",
"src": "4347:20:6"
},
"nativeSrc": "4347:53:6",
"nodeType": "YulFunctionCall",
"src": "4347:53:6"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "4337:6:6",
"nodeType": "YulIdentifier",
"src": "4337:6:6"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256",
"nativeSrc": "3798:619:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3852:9:6",
"nodeType": "YulTypedName",
"src": "3852:9:6",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "3863:7:6",
"nodeType": "YulTypedName",
"src": "3863:7:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "3875:6:6",
"nodeType": "YulTypedName",
"src": "3875:6:6",
"type": ""
},
{
"name": "value1",
"nativeSrc": "3883:6:6",
"nodeType": "YulTypedName",
"src": "3883:6:6",
"type": ""
},
{
"name": "value2",
"nativeSrc": "3891:6:6",
"nodeType": "YulTypedName",
"src": "3891:6:6",
"type": ""
}
],
"src": "3798:619:6"
},
{
"body": {
"nativeSrc": "4489:263:6",
"nodeType": "YulBlock",
"src": "4489:263:6",
"statements": [
{
"body": {
"nativeSrc": "4535:83:6",
"nodeType": "YulBlock",
"src": "4535:83:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "4537:77:6",
"nodeType": "YulIdentifier",
"src": "4537:77:6"
},
"nativeSrc": "4537:79:6",
"nodeType": "YulFunctionCall",
"src": "4537:79:6"
},
"nativeSrc": "4537:79:6",
"nodeType": "YulExpressionStatement",
"src": "4537:79:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "4510:7:6",
"nodeType": "YulIdentifier",
"src": "4510:7:6"
},
{
"name": "headStart",
"nativeSrc": "4519:9:6",
"nodeType": "YulIdentifier",
"src": "4519:9:6"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "4506:3:6",
"nodeType": "YulIdentifier",
"src": "4506:3:6"
},
"nativeSrc": "4506:23:6",
"nodeType": "YulFunctionCall",
"src": "4506:23:6"
},
{
"kind": "number",
"nativeSrc": "4531:2:6",
"nodeType": "YulLiteral",
"src": "4531:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "4502:3:6",
"nodeType": "YulIdentifier",
"src": "4502:3:6"
},
"nativeSrc": "4502:32:6",
"nodeType": "YulFunctionCall",
"src": "4502:32:6"
},
"nativeSrc": "4499:119:6",
"nodeType": "YulIf",
"src": "4499:119:6"
},
{
"nativeSrc": "4628:117:6",
"nodeType": "YulBlock",
"src": "4628:117:6",
"statements": [
{
"nativeSrc": "4643:15:6",
"nodeType": "YulVariableDeclaration",
"src": "4643:15:6",
"value": {
"kind": "number",
"nativeSrc": "4657:1:6",
"nodeType": "YulLiteral",
"src": "4657:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4647:6:6",
"nodeType": "YulTypedName",
"src": "4647:6:6",
"type": ""
}
]
},
{
"nativeSrc": "4672:63:6",
"nodeType": "YulAssignment",
"src": "4672:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4707:9:6",
"nodeType": "YulIdentifier",
"src": "4707:9:6"
},
{
"name": "offset",
"nativeSrc": "4718:6:6",
"nodeType": "YulIdentifier",
"src": "4718:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4703:3:6",
"nodeType": "YulIdentifier",
"src": "4703:3:6"
},
"nativeSrc": "4703:22:6",
"nodeType": "YulFunctionCall",
"src": "4703:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "4727:7:6",
"nodeType": "YulIdentifier",
"src": "4727:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4682:20:6",
"nodeType": "YulIdentifier",
"src": "4682:20:6"
},
"nativeSrc": "4682:53:6",
"nodeType": "YulFunctionCall",
"src": "4682:53:6"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "4672:6:6",
"nodeType": "YulIdentifier",
"src": "4672:6:6"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nativeSrc": "4423:329:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "4459:9:6",
"nodeType": "YulTypedName",
"src": "4459:9:6",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "4470:7:6",
"nodeType": "YulTypedName",
"src": "4470:7:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "4482:6:6",
"nodeType": "YulTypedName",
"src": "4482:6:6",
"type": ""
}
],
"src": "4423:329:6"
},
{
"body": {
"nativeSrc": "4801:43:6",
"nodeType": "YulBlock",
"src": "4801:43:6",
"statements": [
{
"nativeSrc": "4811:27:6",
"nodeType": "YulAssignment",
"src": "4811:27:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "4826:5:6",
"nodeType": "YulIdentifier",
"src": "4826:5:6"
},
{
"kind": "number",
"nativeSrc": "4833:4:6",
"nodeType": "YulLiteral",
"src": "4833:4:6",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4822:3:6",
"nodeType": "YulIdentifier",
"src": "4822:3:6"
},
"nativeSrc": "4822:16:6",
"nodeType": "YulFunctionCall",
"src": "4822:16:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "4811:7:6",
"nodeType": "YulIdentifier",
"src": "4811:7:6"
}
]
}
]
},
"name": "cleanup_t_uint8",
"nativeSrc": "4758:86:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4783:5:6",
"nodeType": "YulTypedName",
"src": "4783:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "4793:7:6",
"nodeType": "YulTypedName",
"src": "4793:7:6",
"type": ""
}
],
"src": "4758:86:6"
},
{
"body": {
"nativeSrc": "4911:51:6",
"nodeType": "YulBlock",
"src": "4911:51:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "4928:3:6",
"nodeType": "YulIdentifier",
"src": "4928:3:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "4949:5:6",
"nodeType": "YulIdentifier",
"src": "4949:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "4933:15:6",
"nodeType": "YulIdentifier",
"src": "4933:15:6"
},
"nativeSrc": "4933:22:6",
"nodeType": "YulFunctionCall",
"src": "4933:22:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4921:6:6",
"nodeType": "YulIdentifier",
"src": "4921:6:6"
},
"nativeSrc": "4921:35:6",
"nodeType": "YulFunctionCall",
"src": "4921:35:6"
},
"nativeSrc": "4921:35:6",
"nodeType": "YulExpressionStatement",
"src": "4921:35:6"
}
]
},
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "4850:112:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4899:5:6",
"nodeType": "YulTypedName",
"src": "4899:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "4906:3:6",
"nodeType": "YulTypedName",
"src": "4906:3:6",
"type": ""
}
],
"src": "4850:112:6"
},
{
"body": {
"nativeSrc": "5062:120:6",
"nodeType": "YulBlock",
"src": "5062:120:6",
"statements": [
{
"nativeSrc": "5072:26:6",
"nodeType": "YulAssignment",
"src": "5072:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "5084:9:6",
"nodeType": "YulIdentifier",
"src": "5084:9:6"
},
{
"kind": "number",
"nativeSrc": "5095:2:6",
"nodeType": "YulLiteral",
"src": "5095:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5080:3:6",
"nodeType": "YulIdentifier",
"src": "5080:3:6"
},
"nativeSrc": "5080:18:6",
"nodeType": "YulFunctionCall",
"src": "5080:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "5072:4:6",
"nodeType": "YulIdentifier",
"src": "5072:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "5148:6:6",
"nodeType": "YulIdentifier",
"src": "5148:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5161:9:6",
"nodeType": "YulIdentifier",
"src": "5161:9:6"
},
{
"kind": "number",
"nativeSrc": "5172:1:6",
"nodeType": "YulLiteral",
"src": "5172:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5157:3:6",
"nodeType": "YulIdentifier",
"src": "5157:3:6"
},
"nativeSrc": "5157:17:6",
"nodeType": "YulFunctionCall",
"src": "5157:17:6"
}
],
"functionName": {
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "5108:39:6",
"nodeType": "YulIdentifier",
"src": "5108:39:6"
},
"nativeSrc": "5108:67:6",
"nodeType": "YulFunctionCall",
"src": "5108:67:6"
},
"nativeSrc": "5108:67:6",
"nodeType": "YulExpressionStatement",
"src": "5108:67:6"
}
]
},
"name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
"nativeSrc": "4968:214:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5034:9:6",
"nodeType": "YulTypedName",
"src": "5034:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "5046:6:6",
"nodeType": "YulTypedName",
"src": "5046:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "5057:4:6",
"nodeType": "YulTypedName",
"src": "5057:4:6",
"type": ""
}
],
"src": "4968:214:6"
},
{
"body": {
"nativeSrc": "5271:391:6",
"nodeType": "YulBlock",
"src": "5271:391:6",
"statements": [
{
"body": {
"nativeSrc": "5317:83:6",
"nodeType": "YulBlock",
"src": "5317:83:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "5319:77:6",
"nodeType": "YulIdentifier",
"src": "5319:77:6"
},
"nativeSrc": "5319:79:6",
"nodeType": "YulFunctionCall",
"src": "5319:79:6"
},
"nativeSrc": "5319:79:6",
"nodeType": "YulExpressionStatement",
"src": "5319:79:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "5292:7:6",
"nodeType": "YulIdentifier",
"src": "5292:7:6"
},
{
"name": "headStart",
"nativeSrc": "5301:9:6",
"nodeType": "YulIdentifier",
"src": "5301:9:6"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "5288:3:6",
"nodeType": "YulIdentifier",
"src": "5288:3:6"
},
"nativeSrc": "5288:23:6",
"nodeType": "YulFunctionCall",
"src": "5288:23:6"
},
{
"kind": "number",
"nativeSrc": "5313:2:6",
"nodeType": "YulLiteral",
"src": "5313:2:6",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "5284:3:6",
"nodeType": "YulIdentifier",
"src": "5284:3:6"
},
"nativeSrc": "5284:32:6",
"nodeType": "YulFunctionCall",
"src": "5284:32:6"
},
"nativeSrc": "5281:119:6",
"nodeType": "YulIf",
"src": "5281:119:6"
},
{
"nativeSrc": "5410:117:6",
"nodeType": "YulBlock",
"src": "5410:117:6",
"statements": [
{
"nativeSrc": "5425:15:6",
"nodeType": "YulVariableDeclaration",
"src": "5425:15:6",
"value": {
"kind": "number",
"nativeSrc": "5439:1:6",
"nodeType": "YulLiteral",
"src": "5439:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5429:6:6",
"nodeType": "YulTypedName",
"src": "5429:6:6",
"type": ""
}
]
},
{
"nativeSrc": "5454:63:6",
"nodeType": "YulAssignment",
"src": "5454:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5489:9:6",
"nodeType": "YulIdentifier",
"src": "5489:9:6"
},
{
"name": "offset",
"nativeSrc": "5500:6:6",
"nodeType": "YulIdentifier",
"src": "5500:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5485:3:6",
"nodeType": "YulIdentifier",
"src": "5485:3:6"
},
"nativeSrc": "5485:22:6",
"nodeType": "YulFunctionCall",
"src": "5485:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "5509:7:6",
"nodeType": "YulIdentifier",
"src": "5509:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "5464:20:6",
"nodeType": "YulIdentifier",
"src": "5464:20:6"
},
"nativeSrc": "5464:53:6",
"nodeType": "YulFunctionCall",
"src": "5464:53:6"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "5454:6:6",
"nodeType": "YulIdentifier",
"src": "5454:6:6"
}
]
}
]
},
{
"nativeSrc": "5537:118:6",
"nodeType": "YulBlock",
"src": "5537:118:6",
"statements": [
{
"nativeSrc": "5552:16:6",
"nodeType": "YulVariableDeclaration",
"src": "5552:16:6",
"value": {
"kind": "number",
"nativeSrc": "5566:2:6",
"nodeType": "YulLiteral",
"src": "5566:2:6",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5556:6:6",
"nodeType": "YulTypedName",
"src": "5556:6:6",
"type": ""
}
]
},
{
"nativeSrc": "5582:63:6",
"nodeType": "YulAssignment",
"src": "5582:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5617:9:6",
"nodeType": "YulIdentifier",
"src": "5617:9:6"
},
{
"name": "offset",
"nativeSrc": "5628:6:6",
"nodeType": "YulIdentifier",
"src": "5628:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5613:3:6",
"nodeType": "YulIdentifier",
"src": "5613:3:6"
},
"nativeSrc": "5613:22:6",
"nodeType": "YulFunctionCall",
"src": "5613:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "5637:7:6",
"nodeType": "YulIdentifier",
"src": "5637:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "5592:20:6",
"nodeType": "YulIdentifier",
"src": "5592:20:6"
},
"nativeSrc": "5592:53:6",
"nodeType": "YulFunctionCall",
"src": "5592:53:6"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "5582:6:6",
"nodeType": "YulIdentifier",
"src": "5582:6:6"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nativeSrc": "5188:474:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5233:9:6",
"nodeType": "YulTypedName",
"src": "5233:9:6",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "5244:7:6",
"nodeType": "YulTypedName",
"src": "5244:7:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "5256:6:6",
"nodeType": "YulTypedName",
"src": "5256:6:6",
"type": ""
},
{
"name": "value1",
"nativeSrc": "5264:6:6",
"nodeType": "YulTypedName",
"src": "5264:6:6",
"type": ""
}
],
"src": "5188:474:6"
},
{
"body": {
"nativeSrc": "5696:152:6",
"nodeType": "YulBlock",
"src": "5696:152:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5713:1:6",
"nodeType": "YulLiteral",
"src": "5713:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5716:77:6",
"nodeType": "YulLiteral",
"src": "5716:77:6",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5706:6:6",
"nodeType": "YulIdentifier",
"src": "5706:6:6"
},
"nativeSrc": "5706:88:6",
"nodeType": "YulFunctionCall",
"src": "5706:88:6"
},
"nativeSrc": "5706:88:6",
"nodeType": "YulExpressionStatement",
"src": "5706:88:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5810:1:6",
"nodeType": "YulLiteral",
"src": "5810:1:6",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "5813:4:6",
"nodeType": "YulLiteral",
"src": "5813:4:6",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5803:6:6",
"nodeType": "YulIdentifier",
"src": "5803:6:6"
},
"nativeSrc": "5803:15:6",
"nodeType": "YulFunctionCall",
"src": "5803:15:6"
},
"nativeSrc": "5803:15:6",
"nodeType": "YulExpressionStatement",
"src": "5803:15:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5834:1:6",
"nodeType": "YulLiteral",
"src": "5834:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5837:4:6",
"nodeType": "YulLiteral",
"src": "5837:4:6",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "5827:6:6",
"nodeType": "YulIdentifier",
"src": "5827:6:6"
},
"nativeSrc": "5827:15:6",
"nodeType": "YulFunctionCall",
"src": "5827:15:6"
},
"nativeSrc": "5827:15:6",
"nodeType": "YulExpressionStatement",
"src": "5827:15:6"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "5668:180:6",
"nodeType": "YulFunctionDefinition",
"src": "5668:180:6"
},
{
"body": {
"nativeSrc": "5905:269:6",
"nodeType": "YulBlock",
"src": "5905:269:6",
"statements": [
{
"nativeSrc": "5915:22:6",
"nodeType": "YulAssignment",
"src": "5915:22:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "5929:4:6",
"nodeType": "YulIdentifier",
"src": "5929:4:6"
},
{
"kind": "number",
"nativeSrc": "5935:1:6",
"nodeType": "YulLiteral",
"src": "5935:1:6",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "5925:3:6",
"nodeType": "YulIdentifier",
"src": "5925:3:6"
},
"nativeSrc": "5925:12:6",
"nodeType": "YulFunctionCall",
"src": "5925:12:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "5915:6:6",
"nodeType": "YulIdentifier",
"src": "5915:6:6"
}
]
},
{
"nativeSrc": "5946:38:6",
"nodeType": "YulVariableDeclaration",
"src": "5946:38:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "5976:4:6",
"nodeType": "YulIdentifier",
"src": "5976:4:6"
},
{
"kind": "number",
"nativeSrc": "5982:1:6",
"nodeType": "YulLiteral",
"src": "5982:1:6",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "5972:3:6",
"nodeType": "YulIdentifier",
"src": "5972:3:6"
},
"nativeSrc": "5972:12:6",
"nodeType": "YulFunctionCall",
"src": "5972:12:6"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "5950:18:6",
"nodeType": "YulTypedName",
"src": "5950:18:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "6023:51:6",
"nodeType": "YulBlock",
"src": "6023:51:6",
"statements": [
{
"nativeSrc": "6037:27:6",
"nodeType": "YulAssignment",
"src": "6037:27:6",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "6051:6:6",
"nodeType": "YulIdentifier",
"src": "6051:6:6"
},
{
"kind": "number",
"nativeSrc": "6059:4:6",
"nodeType": "YulLiteral",
"src": "6059:4:6",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "6047:3:6",
"nodeType": "YulIdentifier",
"src": "6047:3:6"
},
"nativeSrc": "6047:17:6",
"nodeType": "YulFunctionCall",
"src": "6047:17:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "6037:6:6",
"nodeType": "YulIdentifier",
"src": "6037:6:6"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "6003:18:6",
"nodeType": "YulIdentifier",
"src": "6003:18:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "5996:6:6",
"nodeType": "YulIdentifier",
"src": "5996:6:6"
},
"nativeSrc": "5996:26:6",
"nodeType": "YulFunctionCall",
"src": "5996:26:6"
},
"nativeSrc": "5993:81:6",
"nodeType": "YulIf",
"src": "5993:81:6"
},
{
"body": {
"nativeSrc": "6126:42:6",
"nodeType": "YulBlock",
"src": "6126:42:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "6140:16:6",
"nodeType": "YulIdentifier",
"src": "6140:16:6"
},
"nativeSrc": "6140:18:6",
"nodeType": "YulFunctionCall",
"src": "6140:18:6"
},
"nativeSrc": "6140:18:6",
"nodeType": "YulExpressionStatement",
"src": "6140:18:6"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "6090:18:6",
"nodeType": "YulIdentifier",
"src": "6090:18:6"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "6113:6:6",
"nodeType": "YulIdentifier",
"src": "6113:6:6"
},
{
"kind": "number",
"nativeSrc": "6121:2:6",
"nodeType": "YulLiteral",
"src": "6121:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "6110:2:6",
"nodeType": "YulIdentifier",
"src": "6110:2:6"
},
"nativeSrc": "6110:14:6",
"nodeType": "YulFunctionCall",
"src": "6110:14:6"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "6087:2:6",
"nodeType": "YulIdentifier",
"src": "6087:2:6"
},
"nativeSrc": "6087:38:6",
"nodeType": "YulFunctionCall",
"src": "6087:38:6"
},
"nativeSrc": "6084:84:6",
"nodeType": "YulIf",
"src": "6084:84:6"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "5854:320:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "5889:4:6",
"nodeType": "YulTypedName",
"src": "5889:4:6",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "5898:6:6",
"nodeType": "YulTypedName",
"src": "5898:6:6",
"type": ""
}
],
"src": "5854:320:6"
},
{
"body": {
"nativeSrc": "6208:152:6",
"nodeType": "YulBlock",
"src": "6208:152:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "6225:1:6",
"nodeType": "YulLiteral",
"src": "6225:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "6228:77:6",
"nodeType": "YulLiteral",
"src": "6228:77:6",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6218:6:6",
"nodeType": "YulIdentifier",
"src": "6218:6:6"
},
"nativeSrc": "6218:88:6",
"nodeType": "YulFunctionCall",
"src": "6218:88:6"
},
"nativeSrc": "6218:88:6",
"nodeType": "YulExpressionStatement",
"src": "6218:88:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "6322:1:6",
"nodeType": "YulLiteral",
"src": "6322:1:6",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "6325:4:6",
"nodeType": "YulLiteral",
"src": "6325:4:6",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6315:6:6",
"nodeType": "YulIdentifier",
"src": "6315:6:6"
},
"nativeSrc": "6315:15:6",
"nodeType": "YulFunctionCall",
"src": "6315:15:6"
},
"nativeSrc": "6315:15:6",
"nodeType": "YulExpressionStatement",
"src": "6315:15:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "6346:1:6",
"nodeType": "YulLiteral",
"src": "6346:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "6349:4:6",
"nodeType": "YulLiteral",
"src": "6349:4:6",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "6339:6:6",
"nodeType": "YulIdentifier",
"src": "6339:6:6"
},
"nativeSrc": "6339:15:6",
"nodeType": "YulFunctionCall",
"src": "6339:15:6"
},
"nativeSrc": "6339:15:6",
"nodeType": "YulExpressionStatement",
"src": "6339:15:6"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "6180:180:6",
"nodeType": "YulFunctionDefinition",
"src": "6180:180:6"
},
{
"body": {
"nativeSrc": "6414:362:6",
"nodeType": "YulBlock",
"src": "6414:362:6",
"statements": [
{
"nativeSrc": "6424:25:6",
"nodeType": "YulAssignment",
"src": "6424:25:6",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "6447:1:6",
"nodeType": "YulIdentifier",
"src": "6447:1:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "6429:17:6",
"nodeType": "YulIdentifier",
"src": "6429:17:6"
},
"nativeSrc": "6429:20:6",
"nodeType": "YulFunctionCall",
"src": "6429:20:6"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "6424:1:6",
"nodeType": "YulIdentifier",
"src": "6424:1:6"
}
]
},
{
"nativeSrc": "6458:25:6",
"nodeType": "YulAssignment",
"src": "6458:25:6",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "6481:1:6",
"nodeType": "YulIdentifier",
"src": "6481:1:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "6463:17:6",
"nodeType": "YulIdentifier",
"src": "6463:17:6"
},
"nativeSrc": "6463:20:6",
"nodeType": "YulFunctionCall",
"src": "6463:20:6"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "6458:1:6",
"nodeType": "YulIdentifier",
"src": "6458:1:6"
}
]
},
{
"nativeSrc": "6492:28:6",
"nodeType": "YulVariableDeclaration",
"src": "6492:28:6",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "6515:1:6",
"nodeType": "YulIdentifier",
"src": "6515:1:6"
},
{
"name": "y",
"nativeSrc": "6518:1:6",
"nodeType": "YulIdentifier",
"src": "6518:1:6"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "6511:3:6",
"nodeType": "YulIdentifier",
"src": "6511:3:6"
},
"nativeSrc": "6511:9:6",
"nodeType": "YulFunctionCall",
"src": "6511:9:6"
},
"variables": [
{
"name": "product_raw",
"nativeSrc": "6496:11:6",
"nodeType": "YulTypedName",
"src": "6496:11:6",
"type": ""
}
]
},
{
"nativeSrc": "6529:41:6",
"nodeType": "YulAssignment",
"src": "6529:41:6",
"value": {
"arguments": [
{
"name": "product_raw",
"nativeSrc": "6558:11:6",
"nodeType": "YulIdentifier",
"src": "6558:11:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "6540:17:6",
"nodeType": "YulIdentifier",
"src": "6540:17:6"
},
"nativeSrc": "6540:30:6",
"nodeType": "YulFunctionCall",
"src": "6540:30:6"
},
"variableNames": [
{
"name": "product",
"nativeSrc": "6529:7:6",
"nodeType": "YulIdentifier",
"src": "6529:7:6"
}
]
},
{
"body": {
"nativeSrc": "6747:22:6",
"nodeType": "YulBlock",
"src": "6747:22:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "6749:16:6",
"nodeType": "YulIdentifier",
"src": "6749:16:6"
},
"nativeSrc": "6749:18:6",
"nodeType": "YulFunctionCall",
"src": "6749:18:6"
},
"nativeSrc": "6749:18:6",
"nodeType": "YulExpressionStatement",
"src": "6749:18:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nativeSrc": "6680:1:6",
"nodeType": "YulIdentifier",
"src": "6680:1:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "6673:6:6",
"nodeType": "YulIdentifier",
"src": "6673:6:6"
},
"nativeSrc": "6673:9:6",
"nodeType": "YulFunctionCall",
"src": "6673:9:6"
},
{
"arguments": [
{
"name": "y",
"nativeSrc": "6703:1:6",
"nodeType": "YulIdentifier",
"src": "6703:1:6"
},
{
"arguments": [
{
"name": "product",
"nativeSrc": "6710:7:6",
"nodeType": "YulIdentifier",
"src": "6710:7:6"
},
{
"name": "x",
"nativeSrc": "6719:1:6",
"nodeType": "YulIdentifier",
"src": "6719:1:6"
}
],
"functionName": {
"name": "div",
"nativeSrc": "6706:3:6",
"nodeType": "YulIdentifier",
"src": "6706:3:6"
},
"nativeSrc": "6706:15:6",
"nodeType": "YulFunctionCall",
"src": "6706:15:6"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "6700:2:6",
"nodeType": "YulIdentifier",
"src": "6700:2:6"
},
"nativeSrc": "6700:22:6",
"nodeType": "YulFunctionCall",
"src": "6700:22:6"
}
],
"functionName": {
"name": "or",
"nativeSrc": "6653:2:6",
"nodeType": "YulIdentifier",
"src": "6653:2:6"
},
"nativeSrc": "6653:83:6",
"nodeType": "YulFunctionCall",
"src": "6653:83:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "6633:6:6",
"nodeType": "YulIdentifier",
"src": "6633:6:6"
},
"nativeSrc": "6633:113:6",
"nodeType": "YulFunctionCall",
"src": "6633:113:6"
},
"nativeSrc": "6630:139:6",
"nodeType": "YulIf",
"src": "6630:139:6"
}
]
},
"name": "checked_mul_t_uint256",
"nativeSrc": "6366:410:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "6397:1:6",
"nodeType": "YulTypedName",
"src": "6397:1:6",
"type": ""
},
{
"name": "y",
"nativeSrc": "6400:1:6",
"nodeType": "YulTypedName",
"src": "6400:1:6",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nativeSrc": "6406:7:6",
"nodeType": "YulTypedName",
"src": "6406:7:6",
"type": ""
}
],
"src": "6366:410:6"
},
{
"body": {
"nativeSrc": "6810:152:6",
"nodeType": "YulBlock",
"src": "6810:152:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "6827:1:6",
"nodeType": "YulLiteral",
"src": "6827:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "6830:77:6",
"nodeType": "YulLiteral",
"src": "6830:77:6",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6820:6:6",
"nodeType": "YulIdentifier",
"src": "6820:6:6"
},
"nativeSrc": "6820:88:6",
"nodeType": "YulFunctionCall",
"src": "6820:88:6"
},
"nativeSrc": "6820:88:6",
"nodeType": "YulExpressionStatement",
"src": "6820:88:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "6924:1:6",
"nodeType": "YulLiteral",
"src": "6924:1:6",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "6927:4:6",
"nodeType": "YulLiteral",
"src": "6927:4:6",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6917:6:6",
"nodeType": "YulIdentifier",
"src": "6917:6:6"
},
"nativeSrc": "6917:15:6",
"nodeType": "YulFunctionCall",
"src": "6917:15:6"
},
"nativeSrc": "6917:15:6",
"nodeType": "YulExpressionStatement",
"src": "6917:15:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "6948:1:6",
"nodeType": "YulLiteral",
"src": "6948:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "6951:4:6",
"nodeType": "YulLiteral",
"src": "6951:4:6",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "6941:6:6",
"nodeType": "YulIdentifier",
"src": "6941:6:6"
},
"nativeSrc": "6941:15:6",
"nodeType": "YulFunctionCall",
"src": "6941:15:6"
},
"nativeSrc": "6941:15:6",
"nodeType": "YulExpressionStatement",
"src": "6941:15:6"
}
]
},
"name": "panic_error_0x12",
"nativeSrc": "6782:180:6",
"nodeType": "YulFunctionDefinition",
"src": "6782:180:6"
},
{
"body": {
"nativeSrc": "7010:143:6",
"nodeType": "YulBlock",
"src": "7010:143:6",
"statements": [
{
"nativeSrc": "7020:25:6",
"nodeType": "YulAssignment",
"src": "7020:25:6",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7043:1:6",
"nodeType": "YulIdentifier",
"src": "7043:1:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7025:17:6",
"nodeType": "YulIdentifier",
"src": "7025:17:6"
},
"nativeSrc": "7025:20:6",
"nodeType": "YulFunctionCall",
"src": "7025:20:6"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "7020:1:6",
"nodeType": "YulIdentifier",
"src": "7020:1:6"
}
]
},
{
"nativeSrc": "7054:25:6",
"nodeType": "YulAssignment",
"src": "7054:25:6",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "7077:1:6",
"nodeType": "YulIdentifier",
"src": "7077:1:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7059:17:6",
"nodeType": "YulIdentifier",
"src": "7059:17:6"
},
"nativeSrc": "7059:20:6",
"nodeType": "YulFunctionCall",
"src": "7059:20:6"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "7054:1:6",
"nodeType": "YulIdentifier",
"src": "7054:1:6"
}
]
},
{
"body": {
"nativeSrc": "7101:22:6",
"nodeType": "YulBlock",
"src": "7101:22:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nativeSrc": "7103:16:6",
"nodeType": "YulIdentifier",
"src": "7103:16:6"
},
"nativeSrc": "7103:18:6",
"nodeType": "YulFunctionCall",
"src": "7103:18:6"
},
"nativeSrc": "7103:18:6",
"nodeType": "YulExpressionStatement",
"src": "7103:18:6"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nativeSrc": "7098:1:6",
"nodeType": "YulIdentifier",
"src": "7098:1:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "7091:6:6",
"nodeType": "YulIdentifier",
"src": "7091:6:6"
},
"nativeSrc": "7091:9:6",
"nodeType": "YulFunctionCall",
"src": "7091:9:6"
},
"nativeSrc": "7088:35:6",
"nodeType": "YulIf",
"src": "7088:35:6"
},
{
"nativeSrc": "7133:14:6",
"nodeType": "YulAssignment",
"src": "7133:14:6",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7142:1:6",
"nodeType": "YulIdentifier",
"src": "7142:1:6"
},
{
"name": "y",
"nativeSrc": "7145:1:6",
"nodeType": "YulIdentifier",
"src": "7145:1:6"
}
],
"functionName": {
"name": "div",
"nativeSrc": "7138:3:6",
"nodeType": "YulIdentifier",
"src": "7138:3:6"
},
"nativeSrc": "7138:9:6",
"nodeType": "YulFunctionCall",
"src": "7138:9:6"
},
"variableNames": [
{
"name": "r",
"nativeSrc": "7133:1:6",
"nodeType": "YulIdentifier",
"src": "7133:1:6"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nativeSrc": "6968:185:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "6999:1:6",
"nodeType": "YulTypedName",
"src": "6999:1:6",
"type": ""
},
{
"name": "y",
"nativeSrc": "7002:1:6",
"nodeType": "YulTypedName",
"src": "7002:1:6",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nativeSrc": "7008:1:6",
"nodeType": "YulTypedName",
"src": "7008:1:6",
"type": ""
}
],
"src": "6968:185:6"
},
{
"body": {
"nativeSrc": "7224:53:6",
"nodeType": "YulBlock",
"src": "7224:53:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "7241:3:6",
"nodeType": "YulIdentifier",
"src": "7241:3:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "7264:5:6",
"nodeType": "YulIdentifier",
"src": "7264:5:6"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "7246:17:6",
"nodeType": "YulIdentifier",
"src": "7246:17:6"
},
"nativeSrc": "7246:24:6",
"nodeType": "YulFunctionCall",
"src": "7246:24:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7234:6:6",
"nodeType": "YulIdentifier",
"src": "7234:6:6"
},
"nativeSrc": "7234:37:6",
"nodeType": "YulFunctionCall",
"src": "7234:37:6"
},
"nativeSrc": "7234:37:6",
"nodeType": "YulExpressionStatement",
"src": "7234:37:6"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "7159:118:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "7212:5:6",
"nodeType": "YulTypedName",
"src": "7212:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "7219:3:6",
"nodeType": "YulTypedName",
"src": "7219:3:6",
"type": ""
}
],
"src": "7159:118:6"
},
{
"body": {
"nativeSrc": "7437:288:6",
"nodeType": "YulBlock",
"src": "7437:288:6",
"statements": [
{
"nativeSrc": "7447:26:6",
"nodeType": "YulAssignment",
"src": "7447:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "7459:9:6",
"nodeType": "YulIdentifier",
"src": "7459:9:6"
},
{
"kind": "number",
"nativeSrc": "7470:2:6",
"nodeType": "YulLiteral",
"src": "7470:2:6",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7455:3:6",
"nodeType": "YulIdentifier",
"src": "7455:3:6"
},
"nativeSrc": "7455:18:6",
"nodeType": "YulFunctionCall",
"src": "7455:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "7447:4:6",
"nodeType": "YulIdentifier",
"src": "7447:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "7527:6:6",
"nodeType": "YulIdentifier",
"src": "7527:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "7540:9:6",
"nodeType": "YulIdentifier",
"src": "7540:9:6"
},
{
"kind": "number",
"nativeSrc": "7551:1:6",
"nodeType": "YulLiteral",
"src": "7551:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7536:3:6",
"nodeType": "YulIdentifier",
"src": "7536:3:6"
},
"nativeSrc": "7536:17:6",
"nodeType": "YulFunctionCall",
"src": "7536:17:6"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "7483:43:6",
"nodeType": "YulIdentifier",
"src": "7483:43:6"
},
"nativeSrc": "7483:71:6",
"nodeType": "YulFunctionCall",
"src": "7483:71:6"
},
"nativeSrc": "7483:71:6",
"nodeType": "YulExpressionStatement",
"src": "7483:71:6"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "7608:6:6",
"nodeType": "YulIdentifier",
"src": "7608:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "7621:9:6",
"nodeType": "YulIdentifier",
"src": "7621:9:6"
},
{
"kind": "number",
"nativeSrc": "7632:2:6",
"nodeType": "YulLiteral",
"src": "7632:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7617:3:6",
"nodeType": "YulIdentifier",
"src": "7617:3:6"
},
"nativeSrc": "7617:18:6",
"nodeType": "YulFunctionCall",
"src": "7617:18:6"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "7564:43:6",
"nodeType": "YulIdentifier",
"src": "7564:43:6"
},
"nativeSrc": "7564:72:6",
"nodeType": "YulFunctionCall",
"src": "7564:72:6"
},
"nativeSrc": "7564:72:6",
"nodeType": "YulExpressionStatement",
"src": "7564:72:6"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "7690:6:6",
"nodeType": "YulIdentifier",
"src": "7690:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "7703:9:6",
"nodeType": "YulIdentifier",
"src": "7703:9:6"
},
{
"kind": "number",
"nativeSrc": "7714:2:6",
"nodeType": "YulLiteral",
"src": "7714:2:6",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7699:3:6",
"nodeType": "YulIdentifier",
"src": "7699:3:6"
},
"nativeSrc": "7699:18:6",
"nodeType": "YulFunctionCall",
"src": "7699:18:6"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "7646:43:6",
"nodeType": "YulIdentifier",
"src": "7646:43:6"
},
"nativeSrc": "7646:72:6",
"nodeType": "YulFunctionCall",
"src": "7646:72:6"
},
"nativeSrc": "7646:72:6",
"nodeType": "YulExpressionStatement",
"src": "7646:72:6"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
"nativeSrc": "7283:442:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "7393:9:6",
"nodeType": "YulTypedName",
"src": "7393:9:6",
"type": ""
},
{
"name": "value2",
"nativeSrc": "7405:6:6",
"nodeType": "YulTypedName",
"src": "7405:6:6",
"type": ""
},
{
"name": "value1",
"nativeSrc": "7413:6:6",
"nodeType": "YulTypedName",
"src": "7413:6:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "7421:6:6",
"nodeType": "YulTypedName",
"src": "7421:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "7432:4:6",
"nodeType": "YulTypedName",
"src": "7432:4:6",
"type": ""
}
],
"src": "7283:442:6"
},
{
"body": {
"nativeSrc": "7829:124:6",
"nodeType": "YulBlock",
"src": "7829:124:6",
"statements": [
{
"nativeSrc": "7839:26:6",
"nodeType": "YulAssignment",
"src": "7839:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "7851:9:6",
"nodeType": "YulIdentifier",
"src": "7851:9:6"
},
{
"kind": "number",
"nativeSrc": "7862:2:6",
"nodeType": "YulLiteral",
"src": "7862:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7847:3:6",
"nodeType": "YulIdentifier",
"src": "7847:3:6"
},
"nativeSrc": "7847:18:6",
"nodeType": "YulFunctionCall",
"src": "7847:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "7839:4:6",
"nodeType": "YulIdentifier",
"src": "7839:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "7919:6:6",
"nodeType": "YulIdentifier",
"src": "7919:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "7932:9:6",
"nodeType": "YulIdentifier",
"src": "7932:9:6"
},
{
"kind": "number",
"nativeSrc": "7943:1:6",
"nodeType": "YulLiteral",
"src": "7943:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7928:3:6",
"nodeType": "YulIdentifier",
"src": "7928:3:6"
},
"nativeSrc": "7928:17:6",
"nodeType": "YulFunctionCall",
"src": "7928:17:6"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "7875:43:6",
"nodeType": "YulIdentifier",
"src": "7875:43:6"
},
"nativeSrc": "7875:71:6",
"nodeType": "YulFunctionCall",
"src": "7875:71:6"
},
"nativeSrc": "7875:71:6",
"nodeType": "YulExpressionStatement",
"src": "7875:71:6"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nativeSrc": "7731:222:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "7801:9:6",
"nodeType": "YulTypedName",
"src": "7801:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "7813:6:6",
"nodeType": "YulTypedName",
"src": "7813:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "7824:4:6",
"nodeType": "YulTypedName",
"src": "7824:4:6",
"type": ""
}
],
"src": "7731:222:6"
},
{
"body": {
"nativeSrc": "8003:147:6",
"nodeType": "YulBlock",
"src": "8003:147:6",
"statements": [
{
"nativeSrc": "8013:25:6",
"nodeType": "YulAssignment",
"src": "8013:25:6",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "8036:1:6",
"nodeType": "YulIdentifier",
"src": "8036:1:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "8018:17:6",
"nodeType": "YulIdentifier",
"src": "8018:17:6"
},
"nativeSrc": "8018:20:6",
"nodeType": "YulFunctionCall",
"src": "8018:20:6"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "8013:1:6",
"nodeType": "YulIdentifier",
"src": "8013:1:6"
}
]
},
{
"nativeSrc": "8047:25:6",
"nodeType": "YulAssignment",
"src": "8047:25:6",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "8070:1:6",
"nodeType": "YulIdentifier",
"src": "8070:1:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "8052:17:6",
"nodeType": "YulIdentifier",
"src": "8052:17:6"
},
"nativeSrc": "8052:20:6",
"nodeType": "YulFunctionCall",
"src": "8052:20:6"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "8047:1:6",
"nodeType": "YulIdentifier",
"src": "8047:1:6"
}
]
},
{
"nativeSrc": "8081:16:6",
"nodeType": "YulAssignment",
"src": "8081:16:6",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "8092:1:6",
"nodeType": "YulIdentifier",
"src": "8092:1:6"
},
{
"name": "y",
"nativeSrc": "8095:1:6",
"nodeType": "YulIdentifier",
"src": "8095:1:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8088:3:6",
"nodeType": "YulIdentifier",
"src": "8088:3:6"
},
"nativeSrc": "8088:9:6",
"nodeType": "YulFunctionCall",
"src": "8088:9:6"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "8081:3:6",
"nodeType": "YulIdentifier",
"src": "8081:3:6"
}
]
},
{
"body": {
"nativeSrc": "8121:22:6",
"nodeType": "YulBlock",
"src": "8121:22:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "8123:16:6",
"nodeType": "YulIdentifier",
"src": "8123:16:6"
},
"nativeSrc": "8123:18:6",
"nodeType": "YulFunctionCall",
"src": "8123:18:6"
},
"nativeSrc": "8123:18:6",
"nodeType": "YulExpressionStatement",
"src": "8123:18:6"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "8113:1:6",
"nodeType": "YulIdentifier",
"src": "8113:1:6"
},
{
"name": "sum",
"nativeSrc": "8116:3:6",
"nodeType": "YulIdentifier",
"src": "8116:3:6"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "8110:2:6",
"nodeType": "YulIdentifier",
"src": "8110:2:6"
},
"nativeSrc": "8110:10:6",
"nodeType": "YulFunctionCall",
"src": "8110:10:6"
},
"nativeSrc": "8107:36:6",
"nodeType": "YulIf",
"src": "8107:36:6"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "7959:191:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "7990:1:6",
"nodeType": "YulTypedName",
"src": "7990:1:6",
"type": ""
},
{
"name": "y",
"nativeSrc": "7993:1:6",
"nodeType": "YulTypedName",
"src": "7993:1:6",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "7999:3:6",
"nodeType": "YulTypedName",
"src": "7999:3:6",
"type": ""
}
],
"src": "7959:191:6"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 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 abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\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 cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\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 abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(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_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\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 panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\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_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
"id": 6,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061009b575f3560e01c8063313ce56711610063578063313ce567146101a757806370a08231146101d157806395d89b411461020d578063a9059cbb14610237578063d0e30db014610273578063dd62ed3e1461027d5761009b565b806306fdde031461009f578063095ea7b3146100c957806318160ddd1461010557806323b872dd1461012f57806323e3fbd51461016b575b5f80fd5b3480156100aa575f80fd5b506100b36102b9565b6040516100c09190610c37565b60405180910390f35b3480156100d4575f80fd5b506100ef60048036038101906100ea9190610ce8565b610349565b6040516100fc9190610d40565b60405180910390f35b348015610110575f80fd5b5061011961036b565b6040516101269190610d68565b60405180910390f35b34801561013a575f80fd5b5061015560048036038101906101509190610d81565b610374565b6040516101629190610d40565b60405180910390f35b348015610176575f80fd5b50610191600480360381019061018c9190610dd1565b6103a2565b60405161019e9190610d68565b60405180910390f35b3480156101b2575f80fd5b506101bb6103b7565b6040516101c89190610e17565b60405180910390f35b3480156101dc575f80fd5b506101f760048036038101906101f29190610dd1565b6103bf565b6040516102049190610d68565b60405180910390f35b348015610218575f80fd5b50610221610404565b60405161022e9190610c37565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190610ce8565b610494565b60405161026a9190610d40565b60405180910390f35b61027b6104b6565b005b348015610288575f80fd5b506102a3600480360381019061029e9190610e30565b610529565b6040516102b09190610d68565b60405180910390f35b6060600380546102c890610e9b565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610e9b565b801561033f5780601f106103165761010080835404028352916020019161033f565b820191905f5260205f20905b81548152906001019060200180831161032257829003601f168201915b5050505050905090565b5f806103536105ab565b90506103608185856105b2565b600191505092915050565b5f600254905090565b5f8061037e6105ab565b905061038b8582856105c4565b610396858585610656565b60019150509392505050565b6005602052805f5260405f205f915090505481565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461041390610e9b565b80601f016020809104026020016040519081016040528092919081815260200182805461043f90610e9b565b801561048a5780601f106104615761010080835404028352916020019161048a565b820191905f5260205f20905b81548152906001019060200180831161046d57829003601f168201915b5050505050905090565b5f8061049e6105ab565b90506104ab818585610656565b600191505092915050565b3460055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f67016345785d8a00006103e8346105109190610ef8565b61051a9190610f66565b90506105263382610746565b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6105bf83838360016107c5565b505050565b5f6105cf8484610529565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106505781811015610641578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161063893929190610fa5565b60405180910390fd5b61064f84848484035f6107c5565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106c6575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106bd9190610fda565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610736575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161072d9190610fda565b60405180910390fd5b610741838383610994565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107b6575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107ad9190610fda565b60405180910390fd5b6107c15f8383610994565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610835575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161082c9190610fda565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108a5575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161089c9190610fda565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561098e578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109859190610d68565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109e4578060025f8282546109d89190610ff3565b92505081905550610ab2565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610a6d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610a6493929190610fa5565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610af9578060025f8282540392505081905550610b43565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ba09190610d68565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610be4578082015181840152602081019050610bc9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610c0982610bad565b610c138185610bb7565b9350610c23818560208601610bc7565b610c2c81610bef565b840191505092915050565b5f6020820190508181035f830152610c4f8184610bff565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c8482610c5b565b9050919050565b610c9481610c7a565b8114610c9e575f80fd5b50565b5f81359050610caf81610c8b565b92915050565b5f819050919050565b610cc781610cb5565b8114610cd1575f80fd5b50565b5f81359050610ce281610cbe565b92915050565b5f8060408385031215610cfe57610cfd610c57565b5b5f610d0b85828601610ca1565b9250506020610d1c85828601610cd4565b9150509250929050565b5f8115159050919050565b610d3a81610d26565b82525050565b5f602082019050610d535f830184610d31565b92915050565b610d6281610cb5565b82525050565b5f602082019050610d7b5f830184610d59565b92915050565b5f805f60608486031215610d9857610d97610c57565b5b5f610da586828701610ca1565b9350506020610db686828701610ca1565b9250506040610dc786828701610cd4565b9150509250925092565b5f60208284031215610de657610de5610c57565b5b5f610df384828501610ca1565b91505092915050565b5f60ff82169050919050565b610e1181610dfc565b82525050565b5f602082019050610e2a5f830184610e08565b92915050565b5f8060408385031215610e4657610e45610c57565b5b5f610e5385828601610ca1565b9250506020610e6485828601610ca1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610eb257607f821691505b602082108103610ec557610ec4610e6e565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f0282610cb5565b9150610f0d83610cb5565b9250828202610f1b81610cb5565b91508282048414831517610f3257610f31610ecb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610f7082610cb5565b9150610f7b83610cb5565b925082610f8b57610f8a610f39565b5b828204905092915050565b610f9f81610c7a565b82525050565b5f606082019050610fb85f830186610f96565b610fc56020830185610d59565b610fd26040830184610d59565b949350505050565b5f602082019050610fed5f830184610f96565b92915050565b5f610ffd82610cb5565b915061100883610cb5565b92508282019050808211156110205761101f610ecb565b5b9291505056fea2646970667358221220245e38400c9a3a74bad5a90153389e21b93f4d270ef7697da3139689a76d25ad64736f6c63430008180033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x313CE567 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x237 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x27D JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x23E3FBD5 EQ PUSH2 0x16B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xEF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEA SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST PUSH2 0x349 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFC SWAP2 SWAP1 PUSH2 0xD40 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x110 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x119 PUSH2 0x36B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x126 SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0xD81 JUMP JUMPDEST PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0xD40 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x176 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x191 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xDD1 JUMP JUMPDEST PUSH2 0x3A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19E SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB PUSH2 0x3B7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0xE17 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0xDD1 JUMP JUMPDEST PUSH2 0x3BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x204 SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x218 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x221 PUSH2 0x404 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x242 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x258 SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST PUSH2 0x494 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26A SWAP2 SWAP1 PUSH2 0xD40 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x27B PUSH2 0x4B6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x529 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2C8 SWAP1 PUSH2 0xE9B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2F4 SWAP1 PUSH2 0xE9B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x33F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x316 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x33F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x322 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x353 PUSH2 0x5AB JUMP JUMPDEST SWAP1 POP PUSH2 0x360 DUP2 DUP6 DUP6 PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x37E PUSH2 0x5AB JUMP JUMPDEST SWAP1 POP PUSH2 0x38B DUP6 DUP3 DUP6 PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x396 DUP6 DUP6 DUP6 PUSH2 0x656 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x413 SWAP1 PUSH2 0xE9B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0xE9B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x48A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x461 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x48A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x46D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x49E PUSH2 0x5AB JUMP JUMPDEST SWAP1 POP PUSH2 0x4AB DUP2 DUP6 DUP6 PUSH2 0x656 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE PUSH1 0x5 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH0 PUSH8 0x16345785D8A0000 PUSH2 0x3E8 CALLVALUE PUSH2 0x510 SWAP2 SWAP1 PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0x51A SWAP2 SWAP1 PUSH2 0xF66 JUMP JUMPDEST SWAP1 POP PUSH2 0x526 CALLER DUP3 PUSH2 0x746 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x5BF DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x7C5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5CF DUP5 DUP5 PUSH2 0x529 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x650 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x641 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x638 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64F DUP5 DUP5 DUP5 DUP5 SUB PUSH0 PUSH2 0x7C5 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C6 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BD SWAP2 SWAP1 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x736 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72D SWAP2 SWAP1 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x741 DUP4 DUP4 DUP4 PUSH2 0x994 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B6 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AD SWAP2 SWAP1 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7C1 PUSH0 DUP4 DUP4 PUSH2 0x994 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x835 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x82C SWAP2 SWAP1 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8A5 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x98E JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x985 SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x9E4 JUMPI DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x9D8 SWAP2 SWAP1 PUSH2 0xFF3 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xAB2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xA6D JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA64 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xAF9 JUMPI DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xB43 JUMP JUMPDEST DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xBA0 SWAP2 SWAP1 PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xBE4 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xBC9 JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC09 DUP3 PUSH2 0xBAD JUMP JUMPDEST PUSH2 0xC13 DUP2 DUP6 PUSH2 0xBB7 JUMP JUMPDEST SWAP4 POP PUSH2 0xC23 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0xC2C DUP2 PUSH2 0xBEF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xC4F DUP2 DUP5 PUSH2 0xBFF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC84 DUP3 PUSH2 0xC5B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC94 DUP2 PUSH2 0xC7A JUMP JUMPDEST DUP2 EQ PUSH2 0xC9E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCAF DUP2 PUSH2 0xC8B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCC7 DUP2 PUSH2 0xCB5 JUMP JUMPDEST DUP2 EQ PUSH2 0xCD1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCE2 DUP2 PUSH2 0xCBE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCFE JUMPI PUSH2 0xCFD PUSH2 0xC57 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD0B DUP6 DUP3 DUP7 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD1C DUP6 DUP3 DUP7 ADD PUSH2 0xCD4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD3A DUP2 PUSH2 0xD26 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD53 PUSH0 DUP4 ADD DUP5 PUSH2 0xD31 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD62 DUP2 PUSH2 0xCB5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD7B PUSH0 DUP4 ADD DUP5 PUSH2 0xD59 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD98 JUMPI PUSH2 0xD97 PUSH2 0xC57 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDA5 DUP7 DUP3 DUP8 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xDB6 DUP7 DUP3 DUP8 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xDC7 DUP7 DUP3 DUP8 ADD PUSH2 0xCD4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDE6 JUMPI PUSH2 0xDE5 PUSH2 0xC57 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDF3 DUP5 DUP3 DUP6 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE11 DUP2 PUSH2 0xDFC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE2A PUSH0 DUP4 ADD DUP5 PUSH2 0xE08 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE46 JUMPI PUSH2 0xE45 PUSH2 0xC57 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE53 DUP6 DUP3 DUP7 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE64 DUP6 DUP3 DUP7 ADD PUSH2 0xCA1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xEB2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xEC5 JUMPI PUSH2 0xEC4 PUSH2 0xE6E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xF02 DUP3 PUSH2 0xCB5 JUMP JUMPDEST SWAP2 POP PUSH2 0xF0D DUP4 PUSH2 0xCB5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xF1B DUP2 PUSH2 0xCB5 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xF32 JUMPI PUSH2 0xF31 PUSH2 0xECB JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xF70 DUP3 PUSH2 0xCB5 JUMP JUMPDEST SWAP2 POP PUSH2 0xF7B DUP4 PUSH2 0xCB5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xF8B JUMPI PUSH2 0xF8A PUSH2 0xF39 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF9F DUP2 PUSH2 0xC7A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xFB8 PUSH0 DUP4 ADD DUP7 PUSH2 0xF96 JUMP JUMPDEST PUSH2 0xFC5 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xD59 JUMP JUMPDEST PUSH2 0xFD2 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xD59 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFED PUSH0 DUP4 ADD DUP5 PUSH2 0xF96 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFFD DUP3 PUSH2 0xCB5 JUMP JUMPDEST SWAP2 POP PUSH2 0x1008 DUP4 PUSH2 0xCB5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1020 JUMPI PUSH2 0x101F PUSH2 0xECB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 MCOPY CODESIZE BLOCKHASH 0xC SWAP11 GASPRICE PUSH21 0xBAD5A90153389E21B93F4D270EF7697DA3139689A7 PUSH14 0x25AD64736F6C6343000818003300 ",
"sourceMap": "115:424:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3144:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5039:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;154:45:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3002:82:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2276:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3610:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;268:268:5;;;:::i;:::-;;3846:140:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2074:89;2119:13;2151:5;2144:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89;:::o;4293:186::-;4366:4;4382:13;4398:12;:10;:12::i;:::-;4382:28;;4420:31;4429:5;4436:7;4445:5;4420:8;:31::i;:::-;4468:4;4461:11;;;4293:186;;;;:::o;3144:97::-;3196:7;3222:12;;3215:19;;3144:97;:::o;5039:244::-;5126:4;5142:15;5160:12;:10;:12::i;:::-;5142:30;;5182:37;5198:4;5204:7;5213:5;5182:15;:37::i;:::-;5229:26;5239:4;5245:2;5249:5;5229:9;:26::i;:::-;5272:4;5265:11;;;5039:244;;;;;:::o;154:45:5:-;;;;;;;;;;;;;;;;;:::o;3002:82:1:-;3051:5;3075:2;3068:9;;3002:82;:::o;3299:116::-;3364:7;3390:9;:18;3400:7;3390:18;;;;;;;;;;;;;;;;3383:25;;3299:116;;;:::o;2276:93::-;2323:13;2355:7;2348:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2276:93;:::o;3610:178::-;3679:4;3695:13;3711:12;:10;:12::i;:::-;3695:28;;3733:27;3743:5;3750:2;3754:5;3733:9;:27::i;:::-;3777:4;3770:11;;;3610:178;;;;:::o;268:268:5:-;337:9;313;:21;323:10;313:21;;;;;;;;;;;;;;;:33;;;;426:21;472:12;463:4;451:9;:16;;;;:::i;:::-;450:35;;;;:::i;:::-;426:59;;496:32;502:10;514:13;496:5;:32::i;:::-;302:234;268:268::o;3846:140:1:-;3926:7;3952:11;:18;3964:5;3952:18;;;;;;;;;;;;;;;:27;3971:7;3952:27;;;;;;;;;;;;;;;;3945:34;;3846:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8989:128:1:-;9073:37;9082:5;9089:7;9098:5;9105:4;9073:8;:37::i;:::-;8989:128;;;:::o;10663:477::-;10762:24;10789:25;10799:5;10806:7;10789:9;:25::i;:::-;10762:52;;10848:17;10828:16;:37;10824:310;;10904:5;10885:16;:24;10881:130;;;10963:7;10972:16;10990:5;10936:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10881:130;11052:57;11061:5;11068:7;11096:5;11077:16;:24;11103:5;11052:8;:57::i;:::-;10824:310;10752:388;10663:477;;;:::o;5656:300::-;5755:1;5739:18;;:4;:18;;;5735:86;;5807:1;5780:30;;;;;;;;;;;:::i;:::-;;;;;;;;5735:86;5848:1;5834:16;;:2;:16;;;5830:86;;5902:1;5873:32;;;;;;;;;;;:::i;:::-;;;;;;;;5830:86;5925:24;5933:4;5939:2;5943:5;5925:7;:24::i;:::-;5656:300;;;:::o;7721:208::-;7810:1;7791:21;;:7;:21;;;7787:91;;7864:1;7835:32;;;;;;;;;;;:::i;:::-;;;;;;;;7787:91;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;:::-;7721:208;;:::o;9949:432::-;10078:1;10061:19;;:5;:19;;;10057:89;;10132:1;10103:32;;;;;;;;;;;:::i;:::-;;;;;;;;10057:89;10178:1;10159:21;;:7;:21;;;10155:90;;10231:1;10203:31;;;;;;;;;;;:::i;:::-;;;;;;;;10155:90;10284:5;10254:11;:18;10266:5;10254:18;;;;;;;;;;;;;;;:27;10273:7;10254:27;;;;;;;;;;;;;;;:35;;;;10303:9;10299:76;;;10349:7;10333:31;;10342:5;10333:31;;;10358:5;10333:31;;;;;;:::i;:::-;;;;;;;;10299:76;9949:432;;;;:::o;6271:1107::-;6376:1;6360:18;;:4;:18;;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;;;;;6356:540;;;6548:19;6570:9;:15;6580:4;6570:15;;;;;;;;;;;;;;;;6548:37;;6617:5;6603:11;:19;6599:115;;;6674:4;6680:11;6693:5;6649:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6599:115;6866:5;6852:11;:19;6834:9;:15;6844:4;6834:15;;;;;;;;;;;;;;;:37;;;;6534:362;6356:540;6924:1;6910:16;;:2;:16;;;6906:425;;7089:5;7073:12;;:21;;;;;;;;;;;6906:425;;;7301:5;7284:9;:13;7294:2;7284:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6906:425;7361:2;7346:25;;7355:4;7346:25;;;7365:5;7346:25;;;;;;:::i;:::-;;;;;;;;6271:1107;;;:::o;7:99:6:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:180::-;6228:77;6225:1;6218:88;6325:4;6322:1;6315:15;6349:4;6346:1;6339:15;6366:410;6406:7;6429:20;6447:1;6429:20;:::i;:::-;6424:25;;6463:20;6481:1;6463:20;:::i;:::-;6458:25;;6518:1;6515;6511:9;6540:30;6558:11;6540:30;:::i;:::-;6529:41;;6719:1;6710:7;6706:15;6703:1;6700:22;6680:1;6673:9;6653:83;6630:139;;6749:18;;:::i;:::-;6630:139;6414:362;6366:410;;;;:::o;6782:180::-;6830:77;6827:1;6820:88;6927:4;6924:1;6917:15;6951:4;6948:1;6941:15;6968:185;7008:1;7025:20;7043:1;7025:20;:::i;:::-;7020:25;;7059:20;7077:1;7059:20;:::i;:::-;7054:25;;7098:1;7088:35;;7103:18;;:::i;:::-;7088:35;7145:1;7142;7138:9;7133:14;;6968:185;;;;:::o;7159:118::-;7246:24;7264:5;7246:24;:::i;:::-;7241:3;7234:37;7159:118;;:::o;7283:442::-;7432:4;7470:2;7459:9;7455:18;7447:26;;7483:71;7551:1;7540:9;7536:17;7527:6;7483:71;:::i;:::-;7564:72;7632:2;7621:9;7617:18;7608:6;7564:72;:::i;:::-;7646;7714:2;7703:9;7699:18;7690:6;7646:72;:::i;:::-;7283:442;;;;;;:::o;7731:222::-;7824:4;7862:2;7851:9;7847:18;7839:26;;7875:71;7943:1;7932:9;7928:17;7919:6;7875:71;:::i;:::-;7731:222;;;;:::o;7959:191::-;7999:3;8018:20;8036:1;8018:20;:::i;:::-;8013:25;;8052:20;8070:1;8052:20;:::i;:::-;8047:25;;8095:1;8092;8088:9;8081:16;;8116:3;8113:1;8110:10;8107:36;;;8123:18;;:::i;:::-;8107:36;7959:191;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "837600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"allowance(address,address)": "infinite",
"approve(address,uint256)": "infinite",
"balanceOf(address)": "2851",
"decimals()": "338",
"deposit()": "infinite",
"depositOf(address)": "2891",
"name()": "infinite",
"symbol()": "infinite",
"totalSupply()": "2477",
"transfer(address,uint256)": "infinite",
"transferFrom(address,address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"decimals()": "313ce567",
"deposit()": "d0e30db0",
"depositOf(address)": "23e3fbd5",
"name()": "06fdde03",
"symbol()": "95d89b41",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"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": "value",
"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": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "depositOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"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": "value",
"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": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.24+commit.e11b9ed9"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"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": "value",
"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": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "depositOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"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": "value",
"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": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"errors": {
"ERC20InsufficientAllowance(address,uint256,uint256)": [
{
"details": "Indicates a failure with the `spender`’s `allowance`. Used in transfers.",
"params": {
"allowance": "Amount of tokens a `spender` is allowed to operate with.",
"needed": "Minimum amount required to perform a transfer.",
"spender": "Address that may be allowed to operate on tokens without being their owner."
}
}
],
"ERC20InsufficientBalance(address,uint256,uint256)": [
{
"details": "Indicates an error related to the current `balance` of a `sender`. Used in transfers.",
"params": {
"balance": "Current balance for the interacting account.",
"needed": "Minimum amount required to perform a transfer.",
"sender": "Address whose tokens are being transferred."
}
}
],
"ERC20InvalidApprover(address)": [
{
"details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
"params": {
"approver": "Address initiating an approval operation."
}
}
],
"ERC20InvalidReceiver(address)": [
{
"details": "Indicates a failure with the token `receiver`. Used in transfers.",
"params": {
"receiver": "Address to which tokens are being transferred."
}
}
],
"ERC20InvalidSender(address)": [
{
"details": "Indicates a failure with the token `sender`. Used in transfers.",
"params": {
"sender": "Address whose tokens are being transferred."
}
}
],
"ERC20InvalidSpender(address)": [
{
"details": "Indicates a failure with the `spender` to be approved. Used in approvals.",
"params": {
"spender": "Address that may be allowed to operate on tokens without being their owner."
}
}
]
},
"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": "See {IERC20-allowance}."
},
"approve(address,uint256)": {
"details": "See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."
},
"balanceOf(address)": {
"details": "See {IERC20-balanceOf}."
},
"decimals()": {
"details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
},
"name()": {
"details": "Returns the name of the token."
},
"symbol()": {
"details": "Returns the symbol of the token, usually a shorter version of the name."
},
"totalSupply()": {
"details": "See {IERC20-totalSupply}."
},
"transfer(address,uint256)": {
"details": "See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."
},
"transferFrom(address,address,uint256)": {
"details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"TokenV2.sol": "VotingTokenV2"
},
"evmVersion": "shanghai",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
"keccak256": "0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7",
"license": "MIT",
"urls": [
"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f",
"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"
]
},
"@openzeppelin/contracts/token/ERC20/ERC20.sol": {
"keccak256": "0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80",
"license": "MIT",
"urls": [
"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229",
"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS"
]
},
"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
"keccak256": "0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70",
"license": "MIT",
"urls": [
"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c",
"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"
]
},
"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
"keccak256": "0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2",
"license": "MIT",
"urls": [
"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850",
"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"
]
},
"@openzeppelin/contracts/utils/Context.sol": {
"keccak256": "0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2",
"license": "MIT",
"urls": [
"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12",
"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"
]
},
"TokenV2.sol": {
"keccak256": "0x294d3214e5069fee5e7387b06dfa8c629848aaf1568276978ba3003f11baff21",
"license": "MIT",
"urls": [
"bzz-raw://73e7f7d2b87a440935f41b1d2e200956fe57a163bc833942844970aabd9beed2",
"dweb:/ipfs/QmY8YcNrXb4c9CLSKy7ceHSrR4PDm7rNbiwj4DqA83UhWA"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity >0.8.9;
contract VotingToken {
string public name;
string public symbol;
uint256 public totalSupply;
uint256 public decimals;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
mapping(address => uint256) public depositOf;
event Transfer(address, address, uint256);
event Approve(address, address, uint256);
constructor(
string memory _name,
string memory _symbol,
uint256 _initSupply
) {
name = _name;
symbol = _symbol;
balanceOf[msg.sender] = _initSupply;
totalSupply += _initSupply;
}
function deposit() public payable {
depositOf[msg.sender] = msg.value; // native token deposited to contract
// 0.1 e = 1000 token
uint256 receivedToken = (msg.value * 1000) / (0.1 * 10**18);
balanceOf[msg.sender] = receivedToken;
}
function canTransfer(address _to, uint256 _value) external returns (bool) {
transfer(msg.sender, _to, _value);
return true;
}
function transfer(
address _from,
address _to,
uint256 _value
) internal {
require(balanceOf[_from] >= _value, "Insufficient balance");
require(_to != address(0), "Dead address");
balanceOf[_from] -= _value;
balanceOf[_to] += _value;
emit Transfer(_from, _to, _value);
}
// GH token rút ra từ balance của mình
function approve(address _spender, uint256 _value)
public
returns (bool success)
{
allowance[msg.sender][_spender] = _value;
emit Approve(msg.sender, _spender, _value);
return success;
}
// Ủy quyền ng khác chuyển token thay vì mình
function transferFrom(
address _from,
address _to,
uint256 _value
) public returns (bool) {
require(
allowance[_from][msg.sender] >= _value,
"Insufficient allowance"
);
allowance[_from][msg.sender] -= _value;
transfer(_from, _to, _value);
return true;
}
}
// SPDX-License-Identifier: MIT
pragma solidity >0.8.9;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract VotingTokenV2 is ERC20 {
mapping (address => uint256) public depositOf;
constructor() ERC20("Vietnam","VN") {
}
function deposit() public payable {
depositOf[msg.sender] = msg.value; // native token deposited to contract
// 0.1 e = 1000 token
uint256 receivedToken = (msg.value * 1000) / (0.1 * 10**18);
_mint(msg.sender, receivedToken);
}
}
This file has been truncated, but you can view the full file.
{
"id": "1c4be804ce86c2a51503cdc7de2b724d",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.24",
"solcLongVersion": "0.8.24+commit.e11b9ed9",
"input": {
"language": "Solidity",
"sources": {
"TokenV2.sol": {
"content": "// SPDX-License-Identifier: MIT\r\npragma solidity >0.8.9;\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\ncontract VotingTokenV2 is ERC20 {\r\n mapping (address => uint256) public depositOf;\r\n constructor() ERC20(\"Vietnam\",\"VN\") {\r\n \r\n }\r\n\r\n function deposit() public payable {\r\n depositOf[msg.sender] = msg.value; // native token deposited to contract\r\n // 0.1 e = 1000 token\r\n uint256 receivedToken = (msg.value * 1000) / (0.1 * 10**18);\r\n _mint(msg.sender, receivedToken);\r\n }\r\n}"
},
"@openzeppelin/contracts/token/ERC20/ERC20.sol": {
"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n * ```\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n"
},
"@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"
},
"@openzeppelin/contracts/utils/Context.sol": {
"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"
},
"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"
},
"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\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 value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens as the allowance of `spender` over the\n * 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 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` 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(address from, address to, uint256 value) 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"
]
}
},
"remappings": []
}
},
"output": {
"contracts": {
"@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
"IERC1155Errors": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ERC1155InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC1155InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "idsLength",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "valuesLength",
"type": "uint256"
}
],
"name": "ERC1155InvalidArrayLength",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "ERC1155InvalidOperator",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC1155InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC1155InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "ERC1155MissingApprovalForAll",
"type": "error"
}
],
"devdoc": {
"details": "Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.",
"errors": {
"ERC1155InsufficientBalance(address,uint256,uint256,uint256)": [
{
"details": "Indicates an error related to the current `balance` of a `sender`. Used in transfers.",
"params": {
"balance": "Current balance for the interacting account.",
"needed": "Minimum amount required to perform a transfer.",
"sender": "Address whose tokens are being transferred.",
"tokenId": "Identifier number of a token."
}
}
],
"ERC1155InvalidApprover(address)": [
{
"details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
"params": {
"approver": "Address initiating an approval operation."
}
}
],
"ERC1155InvalidArrayLength(uint256,uint256)": [
{
"details": "Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.",
"params": {
"idsLength": "Length of the array of token identifiers",
"valuesLength": "Length of the array of token amounts"
}
}
],
"ERC1155InvalidOperator(address)": [
{
"details": "Indicates a failure with the `operator` to be approved. Used in approvals.",
"params": {
"operator": "Address that may be allowed to operate on tokens without being their owner."
}
}
],
"ERC1155InvalidReceiver(address)": [
{
"details": "Indicates a failure with the token `receiver`. Used in transfers.",
"params": {
"receiver": "Address to which tokens are being transferred."
}
}
],
"ERC1155InvalidSender(address)": [
{
"details": "Indicates a failure with the token `sender`. Used in transfers.",
"params": {
"sender": "Address whose tokens are being transferred."
}
}
],
"ERC1155MissingApprovalForAll(address,address)": [
{
"details": "Indicates a failure with the `operator`’s approval. Used in transfers.",
"params": {
"operator": "Address that may be allowed to operate on tokens without being their owner.",
"owner": "Address of the current owner of a token."
}
}
]
},
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"IERC20Errors": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
}
],
"devdoc": {
"details": "Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.",
"errors": {
"ERC20InsufficientAllowance(address,uint256,uint256)": [
{
"details": "Indicates a failure with the `spender`’s `allowance`. Used in transfers.",
"params": {
"allowance": "Amount of tokens a `spender` is allowed to operate with.",
"needed": "Minimum amount required to perform a transfer.",
"spender": "Address that may be allowed to operate on tokens without being their owner."
}
}
],
"ERC20InsufficientBalance(address,uint256,uint256)": [
{
"details": "Indicates an error related to the current `balance` of a `sender`. Used in transfers.",
"params": {
"balance": "Current balance for the interacting account.",
"needed": "Minimum amount required to perform a transfer.",
"sender": "Address whose tokens are being transferred."
}
}
],
"ERC20InvalidApprover(address)": [
{
"details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
"params": {
"approver": "Address initiating an approval operation."
}
}
],
"ERC20InvalidReceiver(address)": [
{
"details": "Indicates a failure with the token `receiver`. Used in transfers.",
"params": {
"receiver": "Address to which tokens are being transferred."
}
}
],
"ERC20InvalidSender(address)": [
{
"details": "Indicates a failure with the token `sender`. Used in transfers.",
"params": {
"sender": "Address whose tokens are being transferred."
}
}
],
"ERC20InvalidSpender(address)": [
{
"details": "Indicates a failure with the `spender` to be approved. Used in approvals.",
"params": {
"spender": "Address that may be allowed to operate on tokens without being their owner."
}
}
]
},
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {}
},
"metadata": "{
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment