Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save howardpen9/e9702d8232e2becf3cc853e0288ea8a0 to your computer and use it in GitHub Desktop.
Save howardpen9/e9702d8232e2becf3cc853e0288ea8a0 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.7.6+commit.7338295f.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol)
pragma solidity ^0.8.0;
import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.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}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* 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.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* The default value of {decimals} is 18. To select a different value for
* {decimals} you should overload it.
*
* 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 override returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override 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 value {ERC20} uses, unless this function is
* 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 override returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `recipient` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
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}.
*
* Requirements:
*
* - `sender` and `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
* - the caller must have allowance for ``sender``'s tokens of at least
* `amount`.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
return true;
}
/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @dev Moves `amount` of tokens from `sender` to `recipient`.
*
* 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.
*
* Requirements:
*
* - `sender` cannot be the zero address.
* - `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
*/
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
_afterTokenTransfer(sender, recipient, amount);
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
/**
* @dev Sets `amount` 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.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @dev Hook that is called before any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* will be transferred to `to`.
* - when `from` is zero, `amount` tokens will be minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
/**
* @dev Hook that is called after any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* has been transferred to `to`.
* - when `from` is zero, `amount` tokens have been minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens have been burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
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 v4.4.0 (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @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);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @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;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.22 <0.9.0;
library TestsAccounts {
function getAccount(uint index) pure public returns (address) {
address[15] memory accounts;
accounts[0] = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;
accounts[1] = 0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2;
accounts[2] = 0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db;
accounts[3] = 0x78731D3Ca6b7E34aC0F824c42a7cC18A495cabaB;
accounts[4] = 0x617F2E2fD72FD9D5503197092aC168c91465E7f2;
accounts[5] = 0x17F6AD8Ef982297579C203069C1DbfFE4348c372;
accounts[6] = 0x5c6B0f7Bf3E7ce046039Bd8FABdfD3f9F5021678;
accounts[7] = 0x03C6FcED478cBbC9a4FAB34eF9f40767739D1Ff7;
accounts[8] = 0x1aE0EA34a72D944a8C7603FfB3eC30a6669E454C;
accounts[9] = 0x0A098Eda01Ce92ff4A4CCb7A4fFFb5A43EBC70DC;
accounts[10] = 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c;
accounts[11] = 0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C;
accounts[12] = 0x4B0897b0513fdC7C541B6d9D7E929C4e5364D2dB;
accounts[13] = 0x583031D1113aD414F02576BD6afaBfb302140225;
accounts[14] = 0xdD870fA1b7C4700F2BD7f44238821C26f7392148;
return accounts[index];
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.22 <0.9.0;
library Assert {
event AssertionEvent(
bool passed,
string message,
string methodName
);
event AssertionEventUint(
bool passed,
string message,
string methodName,
uint256 returned,
uint256 expected
);
event AssertionEventInt(
bool passed,
string message,
string methodName,
int256 returned,
int256 expected
);
event AssertionEventBool(
bool passed,
string message,
string methodName,
bool returned,
bool expected
);
event AssertionEventAddress(
bool passed,
string message,
string methodName,
address returned,
address expected
);
event AssertionEventBytes32(
bool passed,
string message,
string methodName,
bytes32 returned,
bytes32 expected
);
event AssertionEventString(
bool passed,
string message,
string methodName,
string returned,
string expected
);
event AssertionEventUintInt(
bool passed,
string message,
string methodName,
uint256 returned,
int256 expected
);
event AssertionEventIntUint(
bool passed,
string message,
string methodName,
int256 returned,
uint256 expected
);
function ok(bool a, string memory message) public returns (bool result) {
result = a;
emit AssertionEvent(result, message, "ok");
}
function equal(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventUint(result, message, "equal", a, b);
}
function equal(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventInt(result, message, "equal", a, b);
}
function equal(bool a, bool b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventBool(result, message, "equal", a, b);
}
// TODO: only for certain versions of solc
//function equal(fixed a, fixed b, string message) public returns (bool result) {
// result = (a == b);
// emit AssertionEvent(result, message);
//}
// TODO: only for certain versions of solc
//function equal(ufixed a, ufixed b, string message) public returns (bool result) {
// result = (a == b);
// emit AssertionEvent(result, message);
//}
function equal(address a, address b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventAddress(result, message, "equal", a, b);
}
function equal(bytes32 a, bytes32 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventBytes32(result, message, "equal", a, b);
}
function equal(string memory a, string memory b, string memory message) public returns (bool result) {
result = (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b)));
emit AssertionEventString(result, message, "equal", a, b);
}
function notEqual(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventUint(result, message, "notEqual", a, b);
}
function notEqual(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventInt(result, message, "notEqual", a, b);
}
function notEqual(bool a, bool b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventBool(result, message, "notEqual", a, b);
}
// TODO: only for certain versions of solc
//function notEqual(fixed a, fixed b, string message) public returns (bool result) {
// result = (a != b);
// emit AssertionEvent(result, message);
//}
// TODO: only for certain versions of solc
//function notEqual(ufixed a, ufixed b, string message) public returns (bool result) {
// result = (a != b);
// emit AssertionEvent(result, message);
//}
function notEqual(address a, address b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventAddress(result, message, "notEqual", a, b);
}
function notEqual(bytes32 a, bytes32 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventBytes32(result, message, "notEqual", a, b);
}
function notEqual(string memory a, string memory b, string memory message) public returns (bool result) {
result = (keccak256(abi.encodePacked(a)) != keccak256(abi.encodePacked(b)));
emit AssertionEventString(result, message, "notEqual", a, b);
}
/*----------------- Greater than --------------------*/
function greaterThan(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a > b);
emit AssertionEventUint(result, message, "greaterThan", a, b);
}
function greaterThan(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a > b);
emit AssertionEventInt(result, message, "greaterThan", a, b);
}
// TODO: safely compare between uint and int
function greaterThan(uint256 a, int256 b, string memory message) public returns (bool result) {
if(b < int(0)) {
// int is negative uint "a" always greater
result = true;
} else {
result = (a > uint(b));
}
emit AssertionEventUintInt(result, message, "greaterThan", a, b);
}
function greaterThan(int256 a, uint256 b, string memory message) public returns (bool result) {
if(a < int(0)) {
// int is negative uint "b" always greater
result = false;
} else {
result = (uint(a) > b);
}
emit AssertionEventIntUint(result, message, "greaterThan", a, b);
}
/*----------------- Lesser than --------------------*/
function lesserThan(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a < b);
emit AssertionEventUint(result, message, "lesserThan", a, b);
}
function lesserThan(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a < b);
emit AssertionEventInt(result, message, "lesserThan", a, b);
}
// TODO: safely compare between uint and int
function lesserThan(uint256 a, int256 b, string memory message) public returns (bool result) {
if(b < int(0)) {
// int is negative int "b" always lesser
result = false;
} else {
result = (a < uint(b));
}
emit AssertionEventUintInt(result, message, "lesserThan", a, b);
}
function lesserThan(int256 a, uint256 b, string memory message) public returns (bool result) {
if(a < int(0)) {
// int is negative int "a" always lesser
result = true;
} else {
result = (uint(a) < b);
}
emit AssertionEventIntUint(result, message, "lesserThan", a, b);
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract EtherStore {
uint256 public withdrawLimit = 1 ether;
mapping(address => uint256) public lastWithdrawTime;
mapping(address => uint256) public balances;
function depositFunds() public payable {
balances[msg.sender] += msg.value;
}
function withdrawFunds(uint256 _weiToWithdraw) public payable{
require(balances[msg.sender] >= _weiToWithdraw);
require(_weiToWithdraw <= withdrawLimit); // limit the withdraw
require(block.timestamp >= lastWithdrawTime[msg.sender] + 1 weeks); // limit the time alllowed to withdraw
(bool success, ) = msg.sender.call{value: _weiToWithdraw}("");
require( success, "Transfer Failed.");
balances[msg.sender] -= _weiToWithdraw;
lastWithdrawTime[msg.sender] = block.timestamp;
}
function getTimes() public view returns(uint) {
return lastWithdrawTime[msg.sender] + 1 weeks;
}
function getBlockTime() public view returns(uint) {
return block.timestamp;
}
}
pragma solidity ^0.5.0;
contract addressBalance{
function getContractAddress() internal returns (address){
return this;
}
function getMsgSenderAddrress() internal returns (address){
return msg.sender;
}
}
/* https://www.youtube.com/watch?v=vTxxCbwMPwo
// Array - dynamic or fixed size
// Initialization
// Insert (push), get, update, delete, pop, length
// Creating array in Memeory
// Returning array from function
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;
contract Array {
// dynamic or fixed size
uint[] public numbers = [1 ,2 ,3];
uint[3] public numbers_Fixed_Length = [4, 5, 6];
uint[] public num2;
function example() external {
numbers.push(4); // [1, 2, 3, 4]
uint x = numbers[1];
numbers[2] = 777; // [1, 2, 777, 4]
delete numbers[1]; // [1, 0, 777, 4]
numbers.pop(); // [1, 0, 777]
uint len = numbers.length;
// create array in memory
uint[] memory a = new uint[](5); // 5 is the size of array
a[1] = 123;
num2[0] = numbers.push();
}
function returnArray() external view returns (uint[] memory){
return numbers;
}
function returnArray2() external view returns (uint[] memory){
return num2;
}
}
//https://www.youtube.com/watch?v=6aQErpWPLbk
//SPDX-License-Identifier: MIT
/*
1. Learn how to use other contract's function
2.
*/
pragma solidity ^0.8.4;
contract CallOtherContract {
function setX(address _addr, uint _xxx) external {
TestContract(_addr).setX(_xxx);
}
function setX_2( TestContract _addr2, uint _xx) external {
_addr2.setX(_xx);
}
/////
function setXandSendEther( address _test, uint _x) external payable {
TestContract(_test).setX_and_RecieveEther{value: msg.value }(_x);
}
///
function getXandValue(address _test) external view returns (uint, uint){
(uint x , uint y) = TestContract(_test).getX_and_Value();
return (x,y);
}
}
// The first deployed contract
contract TestContract {
uint public x;
uint public value = 123;
function setX(uint _x) external {
x = _x;
}
function setX_and_RecieveEther(uint _x) external payable {
x = _x;
value = msg.value;
}
function getX() external view returns (uint) {
return x;
}
function getX_and_Value() external view returns (uint, uint){
return (x, value);
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.1;
contract School {
struct Class {
string teacherName;
mapping(string => uint) scores;
}
mapping(string => Class) allClasses;
function addClass(string calldata className, string calldata teacher) public {
Class storage class = allClasses[className];
class.teacherName = teacher;
// Other solutions?
// Gas Cost?
}
function addStudentScore(string calldata className, string calldata studentName, uint score) public {
// allClasses[className].scores[studentName] = score;
Class storage aa = allClasses[className]; // Reference to an any name
aa.scores[studentName] = score;
}
function getStudentScore(string calldata className, string calldata studentName) public view returns (uint) {
// return (allClasses[className]).scores[studentName];
Class storage aa = allClasses[className];
return aa.scores[studentName];
}
function getTeacherName(string calldata className) public view returns (string memory) {
return allClasses[className].teacherName;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
interface IERC721 {
function transferFrom(
address _from,
address _to,
uint _nftId
) external;
}
contract DutchAuction {
uint private constant DURATION = 7 days;
IERC721 public immutable nft;
uint public immutable nftId;
address payable public immutable seller;
uint public immutable startingPrice;
uint public immutable startAt;
uint public immutable expiresAt;
uint public immutable discountRate;
constructor (
uint _startingPrice,
uint _discountRate,
address _nft,
uint _nftId
){
seller = payable(msg.sender);
startingPrice = _startingPrice;
discountRate = _discountRate;
startAt = block.timestamp;
expiresAt = block.timestamp + DURATION;
require(
_startingPrice >= discountRate * DURATION, "starting Price is less than discount"
);
nft = IERC721(_nft);
nftId = _nftId;
}
function getNFTPrice() public view returns (uint) {
uint timeElapsed = block.timestamp - startAt;
uint discount = discountRate * timeElapsed; // timeElapsed, since time elapsed when auction start.
return startingPrice - discount;
}
function buyNFT() external payable {
require(block.timestamp < expiresAt, "Auction Expired. Less than the duration.");
uint price = getNFTPrice();
require(msg.value >= price, "Error: ETH < Price!");
nft.transferFrom(seller, msg.sender, nftId);
uint refund = msg.value - price;
if (refund > 0) {
payable(msg.sender).transfer(refund);
}
selfdestruct(seller); // send the all ETH to seller, then delete the contract
}
}
// https://www.youtube.com/watch?v=5Ojnbn0rkmI
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;
contract EnumExample {
enum Status {
None, // 0
Pending, // 1
Shipped, // 2
Completed, // 3
Rejected, // 4
Canceled // 5
}
Status public buyer_status;
// Struct
struct Order {
address buyer;
Status buyer_status;
}
Order[] public orders;
// Function //
function get() view external returns (Status){
return buyer_status;
}
function set(Status _status) external {
buyer_status = _status;
}
function ship() external {
buyer_status = Status.Shipped;
}
function reset() external {
delete buyer_status;
}
}
//https://www.youtube.com/watch?v=6aQErpWPLbk
//SPDX-License-Identifier: MIT
pragma solidity >= 0.7.0;
contract EtherWallet{
address payable public owner;
constructor() public{
owner = payable(msg.sender);
}
receive() external payable {
// tx = x;
}
function withdraw(uint _amount) external {
// 1)
// require(msg.sender == owner, "caller is not owner!");
// payable(msg.sender).transfer(_amount);
// 2) Optimized the Gas Cost
(bool sent, ) = msg.sender.call{value: _amount}("");
require(sent, "Failed to send Ether");
}
// to show the balance at this address
function getBalance() external view returns(uint){
return address(this).balance;
}
}
// SPDX-License-Identifier: MIT
pragma solidity 0.7.1;
contract FallbackExample {
event Log(string functionName, address addr, uint valuesss, bytes data);
fallback() external payable {
emit Log("fallback", msg.sender, msg.value, msg.data);
}
receive() external payable {
emit Log("fallback", msg.sender, msg.value, "");
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract functionModifier {
bool public paused;
uint public count;
function setPause(bool _paused) external {
paused = _paused;
}
modifier whenNotPausedStatus(){
require(!paused, "paused");
_;
}
function inc() external whenNotPausedStatus{ // normal function
count += 1;
}
function dec() external whenNotPausedStatus{
count -= 1;
}
}
// https://www.youtube.com/watch?v=tbjyc-VQaQo
// How to interact with deployed contract?
// Interface + Uniswap Example
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;
interface ICounter {
function count() external view returns (uint);
function inc() external;
}
contract CallInterface {
uint public count;
function examples(address _counter) external {
ICounter(_counter).inc();
count = ICounter(_counter).count();
}
}
// https://www.youtube.com/watch?v=tbjyc-VQaQo
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;
contract Counter {
uint public count;
function inc() external {
count += 1;
}
function desc() external {
count -= 1;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract Ownable {
address public owner;
constructor() {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner, "not contract owner!");
_;
}
function setOwner(address _newOwner) external onlyOwner {
require(_newOwner != address(0), "invalid address!");
owner = _newOwner;
}
function onlyOwnerCanCallThisFunction() external onlyOwner{
// code
}
function anyOneCanCallThis() external{
//code
}
}
pragma solidity ^0.5.0;
contract Example1 {
uint public x ;
function() external { x = 1; }
}
////////////////////
contract Example2 {
function() external payable { }
}
////////////////////
contract Caller {
function callExample1(Example1 test) public returns (bool) {
(bool success,) = address(test).call(abi.encodeWithSignature("nonExistingFunction()"));
require(success);
// test.x is now 1
address payable testPayable = address(uint160(address(test)));
// Sending ether to Test contract,
// the transfer will fail, i.e. this returns false here.
return (testPayable.send(2 ether));
}
function callExample2(Example2 sink) public returns (bool) {
address payable sinkPayable = address(sink);
return (sinkPayable.send(2 ether));
}
}
// https://www.youtube.com/watch?v=Geio70-SfSE
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
contract PiggyBank {
event Deposit(uint amount);
event Withdraw(uint amount);
address public owner = msg.sender;
receive() external payable {
emit Deposit(msg.value);
}
function withdraw() external {
require(msg.sender == owner, "not owner");
emit Withdraw(address(this).balance);
selfdestruct(payable(msg.sender));
}
}
pragma solidity >=0.4.22 < 0.8.0;
contract PiggyBank {
uint public savingTarget;
constructor(uint256 _savingTarget) {
savingTarget = _savingTarget;
}
receive() external payable {}
function getBalance() public view returns(uint) {
return address(this).balance;
}
function withdraw() public {
if ( getBalance() >= savingTarget ) {
selfdestruct(msg.sender);
}
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract SendEther {
constructor() payable {}
receive() external payable {}
function sendViaTransfer(address payable _to) external payable {
_to.transfer(123); // 2260 gas
}
function sendViaSend(address payable _to) external payable {
bool sent = _to.send(123);
require(sent, "send failed"); //2260
}
function sendViaCall(address payable _to) external payable {
(bool success, ) = _to.call{value: 123}("");
require(success, "call failed");
}
function balanceOfSC() public view returns(uint256) {
return address(this).balance;
}
}
contract EthReceiver {
event Log(uint amount, uint gas);
receive() external payable {
emit Log(msg.value, gasleft());
}
}
// https://www.youtube.com/watch?v=wOCIhzAuhgs
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;
/* https://www.youtube.com/watch?v=pQJ4TeHifdk
// Struct, push,
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;
contract StructsExample {
struct CarInfo {
string model;
uint year;
address owner;
}
CarInfo public car;
CarInfo[] public cars;
mapping(address => CarInfo[]) public carsByOwner; // list by Owner Address, then expanding
function examples() external {
// initial the struct, give the value.
CarInfo memory toyota = CarInfo("toyota", 1993, msg.sender); // example_1
CarInfo memory lambo = CarInfo({model : "lambo", year: 1345, owner: msg.sender}); // example_2
CarInfo memory tasla; // example_3
tasla.model = "tesla";
tasla.year = 55655;
tasla.owner = msg.sender;
// Store to Array
cars.push(toyota);
cars.push(lambo);
cars.push(CarInfo("Ferrari", 391, msg.sender)); // example 4
CarInfo storage _car = cars[0];
_car.model;
_car.year = 9999999;
// delete specific argument
delete _car.owner; // delete the owner on [0]
// delete one array
delete cars[2];
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.1;
contract StudentScore {
mapping (string => uint) scores;
string[] names;
function addScore(string memory name, uint256 score) public {
scores[name] = score; // mapping declare
names.push(name);
}
function getScore(string memory name) public view returns (uint256) {
return scores[name];
}
function deleteScore() public {
while (names.length >0 ) {
delete scores[names[names.length-1]]; // delete the name which is the last of the names Array.
names.pop();
}
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
// private:: only inside the current contract
// internal:: only inside the current contract and child contract (inheratant
// public:: inside and outside the contract
// external:: only from outside of the contract
contract VisibilityExample {
uint private x = 0;
uint internal y = 1;
uint public z = 3;
// uint external s = 4; // no external variable
function privateFunc() private pure returns (uint){
return 0;
}
function internalFunc() internal pure returns (uint){
return 100;
}
function publicFunc() public pure returns (uint){
return 200;
}
function externalFunc() public pure returns (uint){
return 300;
}
function examples() external view returns (uint){
privateFunc();
internalFunc();
publicFunc();
externalFunc();
return(x + y + z );
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract VisibilityModifiers {
function testAccessbleFromInternal() public pure returns (uint) {
return publicFunc();
}
function externalFunction() external pure returns(uint) {
return 15;
}
function publicFunc() public pure returns(uint){
return 20;
}
function internalFunc() internal pure returns(uint){ //Internal: Private contract itself. and
return 25;
}
function privateFunc() private pure returns(uint){
return 30;
}
}
contract DerivedContract is VisibilityModifiers {
function testDerived() public pure returns (uint) {
return internalFunc();
}
}
{
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205fbaddf7ed79757e7e874715fab9cabb227dfcd9b31556aa1e647c9fa8be34bb64736f6c634300080b0033",
"opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5F 0xBA 0xDD 0xF7 0xED PUSH26 0x757E7E874715FAB9CABB227DFCD9B31556AA1E647C9FA8BE34BB PUSH5 0x736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "6715:211:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205fbaddf7ed79757e7e874715fab9cabb227dfcd9b31556aa1e647c9fa8be34bb64736f6c634300080b0033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5F 0xBA 0xDD 0xF7 0xED PUSH26 0x757E7E874715FAB9CABB227DFCD9B31556AA1E647C9FA8BE34BB PUSH5 0x736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "6715:211:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "97",
"totalCost": "17297"
},
"internal": {
"isContract(address)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"ERC721.sol": "Address"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"ERC721.sol": {
"keccak256": "0x3cc8264535bc040d88acb03437455d870a13b7507431df40c97b5676cdb86f7f",
"license": "MIT",
"urls": [
"bzz-raw://61ff3abd190e3d67f6e38f89c517fa95b8872e426c96956f60d0f95dd7c8ba00",
"dweb:/ipfs/QmUfCrTqxGA33pNFvP5FMRsHEQsU4WrcwnAn462ZeLgwFW"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "60806040526040518060600160405280600160ff168152602001600260ff168152602001600360ff16815250600090600361003b929190610086565b506040518060600160405280600460ff168152602001600560ff168152602001600660ff1681525060019060036100739291906100d8565b5034801561008057600080fd5b5061013a565b8280548282559060005260206000209081019282156100c7579160200282015b828111156100c6578251829060ff169055916020019190600101906100a6565b5b5090506100d4919061011d565b5090565b826003810192821561010c579160200282015b8281111561010b578251829060ff169055916020019190600101906100eb565b5b509050610119919061011d565b5090565b5b8082111561013657600081600090555060010161011e565b5090565b610601806101496000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063069eb720146100675780633a7ed083146100975780633cac14c8146100c757806354353f2f146100e5578063c83e1b2f146100ef578063d39fa2331461010d575b600080fd5b610081600480360381019061007c9190610407565b61013d565b60405161008e9190610443565b60405180910390f35b6100b160048036038101906100ac9190610407565b610158565b6040516100be9190610443565b60405180910390f35b6100cf61017c565b6040516100dc919061051c565b60405180910390f35b6100ed6101d4565b005b6100f7610350565b604051610104919061051c565b60405180910390f35b61012760048036038101906101229190610407565b6103a8565b6040516101349190610443565b60405180910390f35b6001816003811061014d57600080fd5b016000915090505481565b6004818154811061016857600080fd5b906000526020600020016000915090505481565b606060008054806020026020016040519081016040528092919081815260200182805480156101ca57602002820191906000526020600020905b8154815260200190600101908083116101b6575b5050505050905090565b6000600490806001815401808255809150506001900390600052602060002001600090919091909150556000806001815481106102145761021361053e565b5b9060005260206000200154905061030960006002815481106102395761023861053e565b5b9060005260206000200181905550600060018154811061025c5761025b61053e565b5b9060005260206000200160009055600080548061027c5761027b61056d565b5b600190038181906000526020600020016000905590556000808054905090506000600567ffffffffffffffff8111156102b8576102b761059c565b5b6040519080825280602002602001820160405280156102e65781602001602082028036833780820191505090505b509050607b816001815181106102ff576102fe61053e565b5b6020026020010181815250506000600181600181540180825580915050039060005260206000200154600460008154811061033d5761033c61053e565b5b9060005260206000200181905550505050565b6060600480548060200260200160405190810160405280929190818152602001828054801561039e57602002820191906000526020600020905b81548152602001906001019080831161038a575b5050505050905090565b600081815481106103b857600080fd5b906000526020600020016000915090505481565b600080fd5b6000819050919050565b6103e4816103d1565b81146103ef57600080fd5b50565b600081359050610401816103db565b92915050565b60006020828403121561041d5761041c6103cc565b5b600061042b848285016103f2565b91505092915050565b61043d816103d1565b82525050565b60006020820190506104586000830184610434565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610493816103d1565b82525050565b60006104a5838361048a565b60208301905092915050565b6000602082019050919050565b60006104c98261045e565b6104d38185610469565b93506104de8361047a565b8060005b8381101561050f5781516104f68882610499565b9750610501836104b1565b9250506001810190506104e2565b5085935050505092915050565b6000602082019050818103600083015261053681846104be565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220095defe63330fbb4bd185f4eff25f8668beadd54b4dbd4b947e3199e18fd23c164736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 PUSH1 0xFF AND DUP2 MSTORE POP PUSH1 0x0 SWAP1 PUSH1 0x3 PUSH2 0x3B SWAP3 SWAP2 SWAP1 PUSH2 0x86 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0xFF AND DUP2 MSTORE POP PUSH1 0x1 SWAP1 PUSH1 0x3 PUSH2 0x73 SWAP3 SWAP2 SWAP1 PUSH2 0xD8 JUMP JUMPDEST POP CALLVALUE DUP1 ISZERO PUSH2 0x80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0xC7 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xC6 JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH1 0xFF AND SWAP1 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xA6 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xD4 SWAP2 SWAP1 PUSH2 0x11D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 PUSH1 0x3 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x10C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x10B JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH1 0xFF AND SWAP1 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xEB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x11D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x136 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x11E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x601 DUP1 PUSH2 0x149 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69EB720 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x3A7ED083 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x3CAC14C8 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0x54353F2F EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xC83E1B2F EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0xD39FA233 EQ PUSH2 0x10D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x407 JUMP JUMPDEST PUSH2 0x13D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8E SWAP2 SWAP1 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x407 JUMP JUMPDEST PUSH2 0x158 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCF PUSH2 0x17C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDC SWAP2 SWAP1 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xED PUSH2 0x1D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF7 PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x407 JUMP JUMPDEST PUSH2 0x3A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 LT PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x1B6 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH1 0x0 DUP1 PUSH1 0x1 DUP2 SLOAD DUP2 LT PUSH2 0x214 JUMPI PUSH2 0x213 PUSH2 0x53E JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP PUSH2 0x309 PUSH1 0x0 PUSH1 0x2 DUP2 SLOAD DUP2 LT PUSH2 0x239 JUMPI PUSH2 0x238 PUSH2 0x53E JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 DUP2 SLOAD DUP2 LT PUSH2 0x25C JUMPI PUSH2 0x25B PUSH2 0x53E JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE PUSH1 0x0 DUP1 SLOAD DUP1 PUSH2 0x27C JUMPI PUSH2 0x27B PUSH2 0x56D JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP PUSH1 0x0 PUSH1 0x5 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B8 JUMPI PUSH2 0x2B7 PUSH2 0x59C JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2E6 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x7B DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2FF JUMPI PUSH2 0x2FE PUSH2 0x53E JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 PUSH1 0x1 DUP2 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0x4 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x33D JUMPI PUSH2 0x33C PUSH2 0x53E JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0x39E JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x38A JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x3D1 JUMP JUMPDEST DUP2 EQ PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x401 DUP2 PUSH2 0x3DB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41D JUMPI PUSH2 0x41C PUSH2 0x3CC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x42B DUP5 DUP3 DUP6 ADD PUSH2 0x3F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x43D DUP2 PUSH2 0x3D1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x458 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x434 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x493 DUP2 PUSH2 0x3D1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A5 DUP4 DUP4 PUSH2 0x48A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C9 DUP3 PUSH2 0x45E JUMP JUMPDEST PUSH2 0x4D3 DUP2 DUP6 PUSH2 0x469 JUMP JUMPDEST SWAP4 POP PUSH2 0x4DE DUP4 PUSH2 0x47A JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x50F JUMPI DUP2 MLOAD PUSH2 0x4F6 DUP9 DUP3 PUSH2 0x499 JUMP JUMPDEST SWAP8 POP PUSH2 0x501 DUP4 PUSH2 0x4B1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4E2 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x536 DUP2 DUP5 PUSH2 0x4BE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MULMOD 0x5D 0xEF 0xE6 CALLER ADDRESS 0xFB 0xB4 0xBD XOR 0x5F 0x4E SELFDESTRUCT 0x25 0xF8 PUSH7 0x8BEADD54B4DBD4 0xB9 SELFBALANCE 0xE3 NOT SWAP15 XOR REVERT 0x23 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "271:789:0:-:0;;;321:33;;;;;;;;346:1;321:33;;;;;;349:1;321:33;;;;;;352:1;321:33;;;;;;;;;;;;;:::i;:::-;;360:47;;;;;;;;399:1;360:47;;;;;;402:1;360:47;;;;;;405:1;360:47;;;;;;;;;;;;;:::i;:::-;;271:789;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@example_81": {
"entryPoint": 468,
"id": 81,
"parameterSlots": 0,
"returnSlots": 0
},
"@num2_19": {
"entryPoint": 344,
"id": 19,
"parameterSlots": 0,
"returnSlots": 0
},
"@numbers_8": {
"entryPoint": 936,
"id": 8,
"parameterSlots": 0,
"returnSlots": 0
},
"@numbers_Fixed_Length_16": {
"entryPoint": 317,
"id": 16,
"parameterSlots": 0,
"returnSlots": 0
},
"@returnArray2_99": {
"entryPoint": 848,
"id": 99,
"parameterSlots": 0,
"returnSlots": 1
},
"@returnArray_90": {
"entryPoint": 380,
"id": 90,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1010,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 1031,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encodeUpdatedPos_t_uint256_to_t_uint256": {
"entryPoint": 1177,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 1214,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256": {
"entryPoint": 1162,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1076,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 1308,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1091,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1146,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1118,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1201,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 1129,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 977,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x31": {
"entryPoint": 1389,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 1342,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1436,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 972,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 987,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3945:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "400:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "460:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "517:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "519:6:1"
},
"nodeType": "YulFunctionCall",
"src": "519:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "519:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "483:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "508:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "490:17:1"
},
"nodeType": "YulFunctionCall",
"src": "490:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "480:2:1"
},
"nodeType": "YulFunctionCall",
"src": "480:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
"nodeType": "YulFunctionCall",
"src": "473:43:1"
},
"nodeType": "YulIf",
"src": "470:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "453:5:1",
"type": ""
}
],
"src": "417:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "597:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "607:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "629:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "616:12:1"
},
"nodeType": "YulFunctionCall",
"src": "616:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "607:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "672:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "645:26:1"
},
"nodeType": "YulFunctionCall",
"src": "645:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "645:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "575:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "583:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "591:5:1",
"type": ""
}
],
"src": "545:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "756:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "802:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "804:77:1"
},
"nodeType": "YulFunctionCall",
"src": "804:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "804:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "777:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "786:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "773:3:1"
},
"nodeType": "YulFunctionCall",
"src": "773:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "798:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "769:3:1"
},
"nodeType": "YulFunctionCall",
"src": "769:32:1"
},
"nodeType": "YulIf",
"src": "766:119:1"
},
{
"nodeType": "YulBlock",
"src": "895:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "910:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "924:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "914:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "939:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "985:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "994:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "949:20:1"
},
"nodeType": "YulFunctionCall",
"src": "949:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "939:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "726:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "737:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "749:6:1",
"type": ""
}
],
"src": "690:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1090:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1107:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1130:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1112:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1112:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1100:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1100:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1100:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1078:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1085:3:1",
"type": ""
}
],
"src": "1025:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1247:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1257:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1269:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1280:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1265:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1265:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1257:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1337:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1350:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1361:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1346:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1346:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1293:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1293:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1293:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1219:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1231:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1242:4:1",
"type": ""
}
],
"src": "1149:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1451:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1462:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1478:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1472:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1472:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1462:6:1"
}
]
}
]
},
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1434:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1444:6:1",
"type": ""
}
],
"src": "1377:114:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1608:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1625:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1630:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1618:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1618:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "1618:19:1"
},
{
"nodeType": "YulAssignment",
"src": "1646:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1665:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1670:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1661:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1661:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1646:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1580:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1585:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1596:11:1",
"type": ""
}
],
"src": "1497:184:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1759:60:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1769:11:1",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "1777:3:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1769:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1790:22:1",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "1802:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1807:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1798:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1798:14:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1790:4:1"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "1746:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "1754:4:1",
"type": ""
}
],
"src": "1687:132:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1880:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1897:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1920:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1902:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1902:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1890:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1890:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1890:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1868:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1875:3:1",
"type": ""
}
],
"src": "1825:108:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2019:99:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2063:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2071:3:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "2029:33:1"
},
"nodeType": "YulFunctionCall",
"src": "2029:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "2029:46:1"
},
{
"nodeType": "YulAssignment",
"src": "2084:28:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2102:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2107:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2098:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2098:14:1"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "2084:10:1"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1992:6:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2000:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "2008:10:1",
"type": ""
}
],
"src": "1939:179:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2199:38:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2209:22:1",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "2221:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2226:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2217:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2217:14:1"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "2209:4:1"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "2186:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "2194:4:1",
"type": ""
}
],
"src": "2124:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2397:608:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2407:68:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2469:5:1"
}
],
"functionName": {
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2421:47:1"
},
"nodeType": "YulFunctionCall",
"src": "2421:54:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2411:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2484:93:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2565:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2570:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2491:73:1"
},
"nodeType": "YulFunctionCall",
"src": "2491:86:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2484:3:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2586:71:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2651:5:1"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2601:49:1"
},
"nodeType": "YulFunctionCall",
"src": "2601:56:1"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "2590:7:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2666:21:1",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "2680:7:1"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "2670:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2756:224:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2770:34:1",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "2797:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2791:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2791:13:1"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "2774:13:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2817:70:1",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "2868:13:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2883:3:1"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "2824:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2824:63:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2817:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2900:70:1",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "2963:6:1"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2910:52:1"
},
"nodeType": "YulFunctionCall",
"src": "2910:60:1"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "2900:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2718:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2721:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2715:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2715:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2729:18:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2731:14:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2740:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2743:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2736:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2736:9:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2731:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2700:14:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2702:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2711:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2706:1:1",
"type": ""
}
]
}
]
},
"src": "2696:284:1"
},
{
"nodeType": "YulAssignment",
"src": "2989:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2996:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2989:3:1"
}
]
}
]
},
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2376:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2383:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2392:3:1",
"type": ""
}
],
"src": "2273:732:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3159:225:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3169:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3181:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3192:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3177:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3177:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3169:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3216:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3227:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3212:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3212:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3235:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3241:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3231:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3231:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3205:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3205:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "3205:47:1"
},
{
"nodeType": "YulAssignment",
"src": "3261:116:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3363:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3372:4:1"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3269:93:1"
},
"nodeType": "YulFunctionCall",
"src": "3269:108:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3261:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3131:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3143:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3154:4:1",
"type": ""
}
],
"src": "3011:373:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3418:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3435:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3438:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3428:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3428:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3428:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3532:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3535:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3525:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3525:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3525:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3556:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3559:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3549:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3549:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3549:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "3390:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3604:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3621:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3624:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3614:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3614:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3614:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3718:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3721:4:1",
"type": "",
"value": "0x31"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3711:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3711:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3711:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3742:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3745:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3735:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3735:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3735:15:1"
}
]
},
"name": "panic_error_0x31",
"nodeType": "YulFunctionDefinition",
"src": "3576:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3790:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3807:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3810:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3800:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3800:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3800:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3904:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3907:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3897:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3897:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3897:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3928:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3931:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3921:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3921:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3921:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3762:180: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 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_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\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 array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_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_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100625760003560e01c8063069eb720146100675780633a7ed083146100975780633cac14c8146100c757806354353f2f146100e5578063c83e1b2f146100ef578063d39fa2331461010d575b600080fd5b610081600480360381019061007c9190610407565b61013d565b60405161008e9190610443565b60405180910390f35b6100b160048036038101906100ac9190610407565b610158565b6040516100be9190610443565b60405180910390f35b6100cf61017c565b6040516100dc919061051c565b60405180910390f35b6100ed6101d4565b005b6100f7610350565b604051610104919061051c565b60405180910390f35b61012760048036038101906101229190610407565b6103a8565b6040516101349190610443565b60405180910390f35b6001816003811061014d57600080fd5b016000915090505481565b6004818154811061016857600080fd5b906000526020600020016000915090505481565b606060008054806020026020016040519081016040528092919081815260200182805480156101ca57602002820191906000526020600020905b8154815260200190600101908083116101b6575b5050505050905090565b6000600490806001815401808255809150506001900390600052602060002001600090919091909150556000806001815481106102145761021361053e565b5b9060005260206000200154905061030960006002815481106102395761023861053e565b5b9060005260206000200181905550600060018154811061025c5761025b61053e565b5b9060005260206000200160009055600080548061027c5761027b61056d565b5b600190038181906000526020600020016000905590556000808054905090506000600567ffffffffffffffff8111156102b8576102b761059c565b5b6040519080825280602002602001820160405280156102e65781602001602082028036833780820191505090505b509050607b816001815181106102ff576102fe61053e565b5b6020026020010181815250506000600181600181540180825580915050039060005260206000200154600460008154811061033d5761033c61053e565b5b9060005260206000200181905550505050565b6060600480548060200260200160405190810160405280929190818152602001828054801561039e57602002820191906000526020600020905b81548152602001906001019080831161038a575b5050505050905090565b600081815481106103b857600080fd5b906000526020600020016000915090505481565b600080fd5b6000819050919050565b6103e4816103d1565b81146103ef57600080fd5b50565b600081359050610401816103db565b92915050565b60006020828403121561041d5761041c6103cc565b5b600061042b848285016103f2565b91505092915050565b61043d816103d1565b82525050565b60006020820190506104586000830184610434565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610493816103d1565b82525050565b60006104a5838361048a565b60208301905092915050565b6000602082019050919050565b60006104c98261045e565b6104d38185610469565b93506104de8361047a565b8060005b8381101561050f5781516104f68882610499565b9750610501836104b1565b9250506001810190506104e2565b5085935050505092915050565b6000602082019050818103600083015261053681846104be565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220095defe63330fbb4bd185f4eff25f8668beadd54b4dbd4b947e3199e18fd23c164736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69EB720 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x3A7ED083 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x3CAC14C8 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0x54353F2F EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xC83E1B2F EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0xD39FA233 EQ PUSH2 0x10D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x407 JUMP JUMPDEST PUSH2 0x13D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8E SWAP2 SWAP1 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x407 JUMP JUMPDEST PUSH2 0x158 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCF PUSH2 0x17C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDC SWAP2 SWAP1 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xED PUSH2 0x1D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF7 PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x407 JUMP JUMPDEST PUSH2 0x3A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 LT PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x1B6 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH1 0x0 DUP1 PUSH1 0x1 DUP2 SLOAD DUP2 LT PUSH2 0x214 JUMPI PUSH2 0x213 PUSH2 0x53E JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP PUSH2 0x309 PUSH1 0x0 PUSH1 0x2 DUP2 SLOAD DUP2 LT PUSH2 0x239 JUMPI PUSH2 0x238 PUSH2 0x53E JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 DUP2 SLOAD DUP2 LT PUSH2 0x25C JUMPI PUSH2 0x25B PUSH2 0x53E JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE PUSH1 0x0 DUP1 SLOAD DUP1 PUSH2 0x27C JUMPI PUSH2 0x27B PUSH2 0x56D JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP PUSH1 0x0 PUSH1 0x5 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B8 JUMPI PUSH2 0x2B7 PUSH2 0x59C JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2E6 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x7B DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2FF JUMPI PUSH2 0x2FE PUSH2 0x53E JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 PUSH1 0x1 DUP2 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0x4 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x33D JUMPI PUSH2 0x33C PUSH2 0x53E JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0x39E JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x38A JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x3D1 JUMP JUMPDEST DUP2 EQ PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x401 DUP2 PUSH2 0x3DB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41D JUMPI PUSH2 0x41C PUSH2 0x3CC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x42B DUP5 DUP3 DUP6 ADD PUSH2 0x3F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x43D DUP2 PUSH2 0x3D1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x458 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x434 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x493 DUP2 PUSH2 0x3D1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A5 DUP4 DUP4 PUSH2 0x48A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C9 DUP3 PUSH2 0x45E JUMP JUMPDEST PUSH2 0x4D3 DUP2 DUP6 PUSH2 0x469 JUMP JUMPDEST SWAP4 POP PUSH2 0x4DE DUP4 PUSH2 0x47A JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x50F JUMPI DUP2 MLOAD PUSH2 0x4F6 DUP9 DUP3 PUSH2 0x499 JUMP JUMPDEST SWAP8 POP PUSH2 0x501 DUP4 PUSH2 0x4B1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4E2 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x536 DUP2 DUP5 PUSH2 0x4BE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MULMOD 0x5D 0xEF 0xE6 CALLER ADDRESS 0xFB 0xB4 0xBD XOR 0x5F 0x4E SELFDESTRUCT 0x25 0xF8 PUSH7 0x8BEADD54B4DBD4 0xB9 SELFBALANCE 0xE3 NOT SWAP15 XOR REVERT 0x23 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "271:789:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;360:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;413:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;873:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;439:428;;;:::i;:::-;;969:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;321:33;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;360:47;;;;;;;;;;;;;;;;;;;;:::o;413:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;873:91::-;919:13;950:7;943:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;873:91;:::o;439:428::-;478:7;491:1;478:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;520:6;529:7;537:1;529:10;;;;;;;;:::i;:::-;;;;;;;;;;520:19;;562:3;549:7;557:1;549:10;;;;;;;;:::i;:::-;;;;;;;;;:16;;;;601:7;609:1;601:10;;;;;;;;:::i;:::-;;;;;;;;;594:17;;;639:7;:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;677:8;688:7;:14;;;;677:25;;747:15;776:1;765:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;747:31;;821:3;814:1;816;814:4;;;;;;;;:::i;:::-;;;;;;;:10;;;;;845:7;:14;;;;;;;;;;;;;;;;;;;;;;835:4;840:1;835:7;;;;;;;;:::i;:::-;;;;;;;;;:24;;;;467:400;;;439:428::o;969:89::-;1016:13;1047:4;1040:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;969:89;:::o;321:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:114::-;1444:6;1478:5;1472:12;1462:22;;1377:114;;;:::o;1497:184::-;1596:11;1630:6;1625:3;1618:19;1670:4;1665:3;1661:14;1646:29;;1497:184;;;;:::o;1687:132::-;1754:4;1777:3;1769:11;;1807:4;1802:3;1798:14;1790:22;;1687:132;;;:::o;1825:108::-;1902:24;1920:5;1902:24;:::i;:::-;1897:3;1890:37;1825:108;;:::o;1939:179::-;2008:10;2029:46;2071:3;2063:6;2029:46;:::i;:::-;2107:4;2102:3;2098:14;2084:28;;1939:179;;;;:::o;2124:113::-;2194:4;2226;2221:3;2217:14;2209:22;;2124:113;;;:::o;2273:732::-;2392:3;2421:54;2469:5;2421:54;:::i;:::-;2491:86;2570:6;2565:3;2491:86;:::i;:::-;2484:93;;2601:56;2651:5;2601:56;:::i;:::-;2680:7;2711:1;2696:284;2721:6;2718:1;2715:13;2696:284;;;2797:6;2791:13;2824:63;2883:3;2868:13;2824:63;:::i;:::-;2817:70;;2910:60;2963:6;2910:60;:::i;:::-;2900:70;;2756:224;2743:1;2740;2736:9;2731:14;;2696:284;;;2700:14;2996:3;2989:10;;2397:608;;;2273:732;;;;:::o;3011:373::-;3154:4;3192:2;3181:9;3177:18;3169:26;;3241:9;3235:4;3231:20;3227:1;3216:9;3212:17;3205:47;3269:108;3372:4;3363:6;3269:108;:::i;:::-;3261:116;;3011:373;;;;:::o;3390:180::-;3438:77;3435:1;3428:88;3535:4;3532:1;3525:15;3559:4;3556:1;3549:15;3576:180;3624:77;3621:1;3614:88;3721:4;3718:1;3711:15;3745:4;3742:1;3735:15;3762:180;3810:77;3807:1;3800:88;3907:4;3904:1;3897:15;3931:4;3928:1;3921:15"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "307400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"example()": "164752",
"num2(uint256)": "infinite",
"numbers(uint256)": "infinite",
"numbers_Fixed_Length(uint256)": "infinite",
"returnArray()": "infinite",
"returnArray2()": "infinite"
}
},
"methodIdentifiers": {
"example()": "54353f2f",
"num2(uint256)": "3a7ed083",
"numbers(uint256)": "d39fa233",
"numbers_Fixed_Length(uint256)": "069eb720",
"returnArray()": "3cac14c8",
"returnArray2()": "c83e1b2f"
}
},
"abi": [
{
"inputs": [],
"name": "example",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "num2",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "numbers",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "numbers_Fixed_Length",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "returnArray",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "returnArray2",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "example",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "num2",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "numbers",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "numbers_Fixed_Length",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "returnArray",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "returnArray2",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"[Example] Array.sol": "Array"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"[Example] Array.sol": {
"keccak256": "0x6c70f38eaf373a493371efdf32591f08b152fbb2c6317fbe147fc69943a52716",
"license": "MIT",
"urls": [
"bzz-raw://cef094200700008b1f3bb17e8aedd1cb046b8a9254649c674ccf282cd9610ebc",
"dweb:/ipfs/QmVUDn4z4vXF6TM7pmozNaZ4298sH6KwnQxc8NyCZ6wh5p"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610303806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630c0ab0411461003b5780638fc6614114610097575b600080fd5b61007d6004803603602081101561005157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100f3565b604051808215151515815260200191505060405180910390f35b6100d9600480360360208110156100ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610283565b604051808215151515815260200191505060405180910390f35b6000808273ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ff85396d7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106101c357805182526020820191506020810190506020830392506101a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b505090508061023857600080fd5b60008390508073ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f1935050505092505050919050565b6000808290508073ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f1935050505091505091905056fea265627a7a723158201a737632a2ec344af7d16c2543f9132f411c05c30fc80493f7c5c6398c66c53e64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x303 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC0AB041 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x8FC66141 EQ PUSH2 0x97 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x283 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0xF85396D700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1C3 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x225 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x22A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP SWAP2 POP POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 BYTE PUSH20 0x7632A2EC344AF7D16C2543F9132F411C05C30FC8 DIV SWAP4 0xF7 0xC5 0xC6 CODECOPY DUP13 PUSH7 0xC53E64736F6C63 NUMBER STOP SDIV GT STOP ORIGIN ",
"sourceMap": "203:611:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:611:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80630c0ab0411461003b5780638fc6614114610097575b600080fd5b61007d6004803603602081101561005157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100f3565b604051808215151515815260200191505060405180910390f35b6100d9600480360360208110156100ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610283565b604051808215151515815260200191505060405180910390f35b6000808273ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ff85396d7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106101c357805182526020820191506020810190506020830392506101a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b505090508061023857600080fd5b60008390508073ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f1935050505092505050919050565b6000808290508073ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f1935050505091505091905056fea265627a7a723158201a737632a2ec344af7d16c2543f9132f411c05c30fc80493f7c5c6398c66c53e64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC0AB041 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x8FC66141 EQ PUSH2 0x97 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x283 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0xF85396D700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1C3 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x225 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x22A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP SWAP2 POP POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 BYTE PUSH20 0x7632A2EC344AF7D16C2543F9132F411C05C30FC8 DIV SWAP4 0xF7 0xC5 0xC6 CODECOPY DUP13 PUSH7 0xC53E64736F6C63 NUMBER STOP SDIV GT STOP ORIGIN ",
"sourceMap": "203:611:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:611:0;;;;;;;;;;;;;;;;;;;;;;;;224:425;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;224:425:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;654:158;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;654:158:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;224:425;277:4;292:12;317:4;309:18;;328:48;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;328:48:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;328:48:0;309:68;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;309:68:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;291:86:0;;;393:7;385:16;;;;;;435:27;489:4;435:61;;617:11;:16;;:25;634:7;617:25;;;;;;;;;;;;;;;;;;;;;;;609:34;;;;224:425;;;:::o;654:158::-;707:4;721:27;759:4;721:43;;780:11;:16;;:25;797:7;780:25;;;;;;;;;;;;;;;;;;;;;;;772:34;;;654:158;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "154200",
"executionCost": "202",
"totalCost": "154402"
},
"external": {
"callExample1(address)": "infinite",
"callExample2(address)": "infinite"
}
},
"methodIdentifiers": {
"callExample1(address)": "0c0ab041",
"callExample2(address)": "8fc66141"
}
},
"abi": [
{
"constant": false,
"inputs": [
{
"internalType": "contract Example1",
"name": "test",
"type": "address"
}
],
"name": "callExample1",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "contract Example2",
"name": "sink",
"type": "address"
}
],
"name": "callExample2",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": false,
"inputs": [
{
"internalType": "contract Example1",
"name": "test",
"type": "address"
}
],
"name": "callExample1",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "contract Example2",
"name": "sink",
"type": "address"
}
],
"name": "callExample2",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {},
"notice": "/////////////////"
}
},
"settings": {
"compilationTarget": {
"test.sol": "Caller"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"test.sol": {
"keccak256": "0xad699589e27b8b9d430b8a53e572ec3e23c231137b2e68048af28a497774851a",
"urls": [
"bzz-raw://1d6eca3b7b6e11e1e5f44d2dc8105aea06b531e4f5acd398ea2b2ddba7ada632",
"dweb:/ipfs/QmSLoTpmdmbTxNYoUGpQvV2FrmMEehsYLE72A2Yt25xFwo"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506102a6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806306661abd1461003b578063f215f9d614610059575b600080fd5b610043610075565b604051610050919061016c565b60405180910390f35b610073600480360381019061006e91906101ea565b61007b565b005b60005481565b8073ffffffffffffffffffffffffffffffffffffffff1663371303c06040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156100c357600080fd5b505af11580156100d7573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014a9190610243565b60008190555050565b6000819050919050565b61016681610153565b82525050565b6000602082019050610181600083018461015d565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101b78261018c565b9050919050565b6101c7816101ac565b81146101d257600080fd5b50565b6000813590506101e4816101be565b92915050565b600060208284031215610200576101ff610187565b5b600061020e848285016101d5565b91505092915050565b61022081610153565b811461022b57600080fd5b50565b60008151905061023d81610217565b92915050565b60006020828403121561025957610258610187565b5b60006102678482850161022e565b9150509291505056fea26469706673582212209fcc469b83d7d30a7feb4db1ab61ccd1a16700da5b834322b4180b67dad62acb64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6661ABD EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xF215F9D6 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x16C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x1EA JUMP JUMPDEST PUSH2 0x7B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x371303C0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6661ABD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x126 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x243 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x166 DUP2 PUSH2 0x153 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x181 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x15D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x18C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C7 DUP2 PUSH2 0x1AC JUMP JUMPDEST DUP2 EQ PUSH2 0x1D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E4 DUP2 PUSH2 0x1BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x200 JUMPI PUSH2 0x1FF PUSH2 0x187 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20E DUP5 DUP3 DUP6 ADD PUSH2 0x1D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x220 DUP2 PUSH2 0x153 JUMP JUMPDEST DUP2 EQ PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x23D DUP2 PUSH2 0x217 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x259 JUMPI PUSH2 0x258 PUSH2 0x187 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x267 DUP5 DUP3 DUP6 ADD PUSH2 0x22E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 0xCC CHAINID SWAP12 DUP4 0xD7 0xD3 EXP PUSH32 0xEB4DB1AB61CCD1A16700DA5B834322B4180B67DAD62ACB64736F6C634300080B STOP CALLER ",
"sourceMap": "283:185:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@count_12": {
"entryPoint": 117,
"id": 12,
"parameterSlots": 0,
"returnSlots": 0
},
"@examples_32": {
"entryPoint": 123,
"id": 32,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 469,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 558,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 490,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 579,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 349,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 364,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 428,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 396,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 339,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 391,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 446,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 535,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:2242:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "482:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "492:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "508:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "502:5:1"
},
"nodeType": "YulFunctionCall",
"src": "502:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "492:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "475:6:1",
"type": ""
}
],
"src": "442:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "612:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "629:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "632:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "622:6:1"
},
"nodeType": "YulFunctionCall",
"src": "622:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "622:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "523:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "735:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "752:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "755:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "745:6:1"
},
"nodeType": "YulFunctionCall",
"src": "745:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "745:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "646:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "814:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "824:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "839:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "846:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "835:3:1"
},
"nodeType": "YulFunctionCall",
"src": "835:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "824:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "796:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "806:7:1",
"type": ""
}
],
"src": "769:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "946:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "956:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "985:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "967:17:1"
},
"nodeType": "YulFunctionCall",
"src": "967:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "956:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "928:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "938:7:1",
"type": ""
}
],
"src": "901:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1046:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1103:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1112:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1115:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1105:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1105:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1105:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1069:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1094:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1076:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1076:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1066:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1066:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1059:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1059:43:1"
},
"nodeType": "YulIf",
"src": "1056:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1039:5:1",
"type": ""
}
],
"src": "1003:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1183:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1193:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1215:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1202:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1202:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1193:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1258:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "1231:26:1"
},
"nodeType": "YulFunctionCall",
"src": "1231:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1231:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1161:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1169:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1177:5:1",
"type": ""
}
],
"src": "1131:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1342:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1388:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1390:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1390:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1390:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1363:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1372:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1359:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1359:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1384:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1355:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1355:32:1"
},
"nodeType": "YulIf",
"src": "1352:119:1"
},
{
"nodeType": "YulBlock",
"src": "1481:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1496:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1510:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1500:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1525:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1560:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1571:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1556:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1556:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1580:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1535:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1535:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1525:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1312:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1323:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1335:6:1",
"type": ""
}
],
"src": "1276:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1654:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1711:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1720:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1723:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1713:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1713:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1713:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1677:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1702:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1684:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1684:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1674:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1674:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1667:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1667:43:1"
},
"nodeType": "YulIf",
"src": "1664:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1647:5:1",
"type": ""
}
],
"src": "1611:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1802:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1812:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1827:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1821:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1821:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1812:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1870:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "1843:26:1"
},
"nodeType": "YulFunctionCall",
"src": "1843:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1843:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1780:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1788:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1796:5:1",
"type": ""
}
],
"src": "1739:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1965:274:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2011:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2013:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2013:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2013:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1986:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1995:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1982:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1982:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2007:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1978:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1978:32:1"
},
"nodeType": "YulIf",
"src": "1975:119:1"
},
{
"nodeType": "YulBlock",
"src": "2104:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2119:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2133:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2123:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2148:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2194:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2205:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2190:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2190:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2214:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "2158:31:1"
},
"nodeType": "YulFunctionCall",
"src": "2158:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2148:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1935:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1946:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1958:6:1",
"type": ""
}
],
"src": "1888:351:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function 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 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 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 validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c806306661abd1461003b578063f215f9d614610059575b600080fd5b610043610075565b604051610050919061016c565b60405180910390f35b610073600480360381019061006e91906101ea565b61007b565b005b60005481565b8073ffffffffffffffffffffffffffffffffffffffff1663371303c06040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156100c357600080fd5b505af11580156100d7573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014a9190610243565b60008190555050565b6000819050919050565b61016681610153565b82525050565b6000602082019050610181600083018461015d565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101b78261018c565b9050919050565b6101c7816101ac565b81146101d257600080fd5b50565b6000813590506101e4816101be565b92915050565b600060208284031215610200576101ff610187565b5b600061020e848285016101d5565b91505092915050565b61022081610153565b811461022b57600080fd5b50565b60008151905061023d81610217565b92915050565b60006020828403121561025957610258610187565b5b60006102678482850161022e565b9150509291505056fea26469706673582212209fcc469b83d7d30a7feb4db1ab61ccd1a16700da5b834322b4180b67dad62acb64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6661ABD EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xF215F9D6 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x16C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x1EA JUMP JUMPDEST PUSH2 0x7B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x371303C0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6661ABD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x126 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x243 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x166 DUP2 PUSH2 0x153 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x181 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x15D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x18C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C7 DUP2 PUSH2 0x1AC JUMP JUMPDEST DUP2 EQ PUSH2 0x1D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E4 DUP2 PUSH2 0x1BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x200 JUMPI PUSH2 0x1FF PUSH2 0x187 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20E DUP5 DUP3 DUP6 ADD PUSH2 0x1D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x220 DUP2 PUSH2 0x153 JUMP JUMPDEST DUP2 EQ PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x23D DUP2 PUSH2 0x217 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x259 JUMPI PUSH2 0x258 PUSH2 0x187 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x267 DUP5 DUP3 DUP6 ADD PUSH2 0x22E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 0xCC CHAINID SWAP12 DUP4 0xD7 0xD3 EXP PUSH32 0xEB4DB1AB61CCD1A16700DA5B834322B4180B67DAD62ACB64736F6C634300080B STOP CALLER ",
"sourceMap": "283:185:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;312:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;336:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;312:17;;;;:::o;336:130::-;400:8;391:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;442:8;433:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;425:5;:34;;;;336:130;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:143::-;1796:5;1827:6;1821:13;1812:22;;1843:33;1870:5;1843:33;:::i;:::-;1739:143;;;;:::o;1888:351::-;1958:6;2007:2;1995:9;1986:7;1982:23;1978:32;1975:119;;;2013:79;;:::i;:::-;1975:119;2133:1;2158:64;2214:7;2205:6;2194:9;2190:22;2158:64;:::i;:::-;2148:74;;2104:128;1888:351;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "135600",
"executionCost": "183",
"totalCost": "135783"
},
"external": {
"count()": "2407",
"examples(address)": "infinite"
}
},
"methodIdentifiers": {
"count()": "06661abd",
"examples(address)": "f215f9d6"
}
},
"abi": [
{
"inputs": [],
"name": "count",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_counter",
"type": "address"
}
],
"name": "examples",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "count",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_counter",
"type": "address"
}
],
"name": "examples",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"[Example] Interface_1.sol": "CallInterface"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"[Example] Interface_1.sol": {
"keccak256": "0x3a270921befb29ad49191cff9f2fbd589e22f92acc62786999352b2f5726d352",
"license": "MIT",
"urls": [
"bzz-raw://45fd27a8b4fd969fe322e69792bd7513d5382d815a7d959efa468f37e44e4beb",
"dweb:/ipfs/QmbiiLAuSmmuBWoWAwjvimBxQCMvPBmN5CDhKKQf92foKS"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610525806100206000396000f3fe60806040526004361061003f5760003560e01c80632feed3211461004457806337e2621b1461006d5780634a2ad99f146100ab578063d44abc42146100d4575b600080fd5b34801561005057600080fd5b5061006b6004803603810190610066919061036e565b6100f0565b005b34801561007957600080fd5b50610094600480360381019061008f91906103da565b61015f565b6040516100a2929190610416565b60405180910390f35b3480156100b757600080fd5b506100d260048036038101906100cd919061043f565b6101e4565b005b6100ee60048036038101906100e9919061043f565b610253565b005b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa826040518263ffffffff1660e01b8152600401610129919061047f565b600060405180830381600087803b15801561014357600080fd5b505af1158015610157573d6000803e3d6000fd5b505050505050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1663240882eb6040518163ffffffff1660e01b81526004016040805180830381865afa1580156101af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d391906104af565b915091508181935093505050915091565b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa826040518263ffffffff1660e01b815260040161021d919061047f565b600060405180830381600087803b15801561023757600080fd5b505af115801561024b573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166331d2bf8c34836040518363ffffffff1660e01b815260040161028d919061047f565b6000604051808303818588803b1580156102a657600080fd5b505af11580156102ba573d6000803e3d6000fd5b50505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102f3826102c8565b9050919050565b6000610305826102e8565b9050919050565b610315816102fa565b811461032057600080fd5b50565b6000813590506103328161030c565b92915050565b6000819050919050565b61034b81610338565b811461035657600080fd5b50565b60008135905061036881610342565b92915050565b60008060408385031215610385576103846102c3565b5b600061039385828601610323565b92505060206103a485828601610359565b9150509250929050565b6103b7816102e8565b81146103c257600080fd5b50565b6000813590506103d4816103ae565b92915050565b6000602082840312156103f0576103ef6102c3565b5b60006103fe848285016103c5565b91505092915050565b61041081610338565b82525050565b600060408201905061042b6000830185610407565b6104386020830184610407565b9392505050565b60008060408385031215610456576104556102c3565b5b6000610464858286016103c5565b925050602061047585828601610359565b9150509250929050565b60006020820190506104946000830184610407565b92915050565b6000815190506104a981610342565b92915050565b600080604083850312156104c6576104c56102c3565b5b60006104d48582860161049a565b92505060206104e58582860161049a565b915050925092905056fea26469706673582212201e5d2cb99ed1978dee369b2e5d0c1a294fb8096cb55c3766d7165911ad703f4164736f6c634300080a0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x525 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2FEED321 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x37E2621B EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x4A2AD99F EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xD44ABC42 EQ PUSH2 0xD4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x36E JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x94 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x3DA JUMP JUMPDEST PUSH2 0x15F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP3 SWAP2 SWAP1 PUSH2 0x416 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCD SWAP2 SWAP1 PUSH2 0x43F JUMP JUMPDEST PUSH2 0x1E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xEE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x43F JUMP JUMPDEST PUSH2 0x253 JUMP JUMPDEST STOP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4018D9AA DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x157 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x240882EB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x4AF JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4018D9AA DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21D SWAP2 SWAP1 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x31D2BF8C CALLVALUE DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F3 DUP3 PUSH2 0x2C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x305 DUP3 PUSH2 0x2E8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x315 DUP2 PUSH2 0x2FA JUMP JUMPDEST DUP2 EQ PUSH2 0x320 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x332 DUP2 PUSH2 0x30C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34B DUP2 PUSH2 0x338 JUMP JUMPDEST DUP2 EQ PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x368 DUP2 PUSH2 0x342 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x385 JUMPI PUSH2 0x384 PUSH2 0x2C3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x393 DUP6 DUP3 DUP7 ADD PUSH2 0x323 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3A4 DUP6 DUP3 DUP7 ADD PUSH2 0x359 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x3B7 DUP2 PUSH2 0x2E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x3C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3D4 DUP2 PUSH2 0x3AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F0 JUMPI PUSH2 0x3EF PUSH2 0x2C3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3FE DUP5 DUP3 DUP6 ADD PUSH2 0x3C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x410 DUP2 PUSH2 0x338 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x42B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x407 JUMP JUMPDEST PUSH2 0x438 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x407 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x456 JUMPI PUSH2 0x455 PUSH2 0x2C3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x464 DUP6 DUP3 DUP7 ADD PUSH2 0x3C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x475 DUP6 DUP3 DUP7 ADD PUSH2 0x359 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x494 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x407 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4A9 DUP2 PUSH2 0x342 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4C6 JUMPI PUSH2 0x4C5 PUSH2 0x2C3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4D4 DUP6 DUP3 DUP7 ADD PUSH2 0x49A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x4E5 DUP6 DUP3 DUP7 ADD PUSH2 0x49A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E 0x5D 0x2C 0xB9 SWAP15 0xD1 SWAP8 DUP14 0xEE CALLDATASIZE SWAP12 0x2E 0x5D 0xC BYTE 0x29 0x4F 0xB8 MULMOD PUSH13 0xB55C3766D7165911AD703F4164 PUSH20 0x6F6C634300080A00330000000000000000000000 ",
"sourceMap": "157:571:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getXandValue_73": {
"entryPoint": 351,
"id": 73,
"parameterSlots": 1,
"returnSlots": 2
},
"@setX_16": {
"entryPoint": 484,
"id": 16,
"parameterSlots": 2,
"returnSlots": 0
},
"@setX_2_31": {
"entryPoint": 240,
"id": 31,
"parameterSlots": 2,
"returnSlots": 0
},
"@setXandSendEther_49": {
"entryPoint": 595,
"id": 49,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 965,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_contract$_TestContract_$125": {
"entryPoint": 803,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 857,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 1178,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 986,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 1087,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_contract$_TestContract_$125t_uint256": {
"entryPoint": 878,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256t_uint256_fromMemory": {
"entryPoint": 1199,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1031,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1151,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 1046,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 744,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_contract$_TestContract_$125": {
"entryPoint": 762,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 712,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 824,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 707,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 942,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_contract$_TestContract_$125": {
"entryPoint": 780,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 834,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4356:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "400:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:1"
},
"nodeType": "YulFunctionCall",
"src": "532:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:1",
"type": ""
}
],
"src": "466:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "633:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "643:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "672:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "654:17:1"
},
"nodeType": "YulFunctionCall",
"src": "654:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "643:7:1"
}
]
}
]
},
"name": "cleanup_t_contract$_TestContract_$125",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "615:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "625:7:1",
"type": ""
}
],
"src": "568:116:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "753:99:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "830:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "839:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "842:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "832:6:1"
},
"nodeType": "YulFunctionCall",
"src": "832:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "832:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "776:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "821:5:1"
}
],
"functionName": {
"name": "cleanup_t_contract$_TestContract_$125",
"nodeType": "YulIdentifier",
"src": "783:37:1"
},
"nodeType": "YulFunctionCall",
"src": "783:44:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "773:2:1"
},
"nodeType": "YulFunctionCall",
"src": "773:55:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "766:6:1"
},
"nodeType": "YulFunctionCall",
"src": "766:63:1"
},
"nodeType": "YulIf",
"src": "763:83:1"
}
]
},
"name": "validator_revert_t_contract$_TestContract_$125",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "746:5:1",
"type": ""
}
],
"src": "690:162:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "930:107:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "940:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "962:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "949:12:1"
},
"nodeType": "YulFunctionCall",
"src": "949:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "940:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1025:5:1"
}
],
"functionName": {
"name": "validator_revert_t_contract$_TestContract_$125",
"nodeType": "YulIdentifier",
"src": "978:46:1"
},
"nodeType": "YulFunctionCall",
"src": "978:53:1"
},
"nodeType": "YulExpressionStatement",
"src": "978:53:1"
}
]
},
"name": "abi_decode_t_contract$_TestContract_$125",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "908:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "916:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "924:5:1",
"type": ""
}
],
"src": "858:179:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1088:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1098:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1109:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1098:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1070:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1080:7:1",
"type": ""
}
],
"src": "1043:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1169:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1226:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1235:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1238:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1228:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1228:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1228:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1192:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1217:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1199:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1199:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1189:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1189:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1182:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1182:43:1"
},
"nodeType": "YulIf",
"src": "1179:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1162:5:1",
"type": ""
}
],
"src": "1126:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1306:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1316:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1338:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1325:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1325:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1316:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1381:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "1354:26:1"
},
"nodeType": "YulFunctionCall",
"src": "1354:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1354:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1284:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1292:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1300:5:1",
"type": ""
}
],
"src": "1254:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1502:411:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1548:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1550:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1550:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1550:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1523:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1532:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1519:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1519:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1544:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1515:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1515:32:1"
},
"nodeType": "YulIf",
"src": "1512:119:1"
},
{
"nodeType": "YulBlock",
"src": "1641:137:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1656:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1670:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1660:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1685:83:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1740:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1751:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1736:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1736:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1760:7:1"
}
],
"functionName": {
"name": "abi_decode_t_contract$_TestContract_$125",
"nodeType": "YulIdentifier",
"src": "1695:40:1"
},
"nodeType": "YulFunctionCall",
"src": "1695:73:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1685:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1788:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1803:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1817:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1807:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1833:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1868:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1879:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1864:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1864:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1888:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1843:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1843:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1833:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_contract$_TestContract_$125t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1464:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1475:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1487:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1495:6:1",
"type": ""
}
],
"src": "1399:514:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1962:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2019:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2028:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2031:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2021:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2021:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2021:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1985:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2010:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1992:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1992:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1982:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1982:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1975:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1975:43:1"
},
"nodeType": "YulIf",
"src": "1972:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1955:5:1",
"type": ""
}
],
"src": "1919:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2099:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2109:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2131:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2118:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2118:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2109:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2174:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "2147:26:1"
},
"nodeType": "YulFunctionCall",
"src": "2147:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "2147:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2077:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2085:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2093:5:1",
"type": ""
}
],
"src": "2047:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2258:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2304:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2306:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2306:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2306:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2279:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2288:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2275:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2275:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2300:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2271:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2271:32:1"
},
"nodeType": "YulIf",
"src": "2268:119:1"
},
{
"nodeType": "YulBlock",
"src": "2397:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2412:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2426:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2416:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2441:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2476:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2487:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2472:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2472:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2496:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "2451:20:1"
},
"nodeType": "YulFunctionCall",
"src": "2451:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2441:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2228:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2239:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2251:6:1",
"type": ""
}
],
"src": "2192:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2592:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2609:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2632:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2614:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2614:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2602:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2602:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2602:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2580:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2587:3:1",
"type": ""
}
],
"src": "2527:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2777:206:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2787:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2799:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2810:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2795:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2795:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2787:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2867:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2880:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2891:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2876:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2876:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2823:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2823:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2823:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2948:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2961:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2972:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2957:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2957:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2904:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2904:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "2904:72:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2741:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2753:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2761:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2772:4:1",
"type": ""
}
],
"src": "2651:332:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3072:391:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3118:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3120:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3120:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3120:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3093:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3102:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3089:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3089:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3114:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3085:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3085:32:1"
},
"nodeType": "YulIf",
"src": "3082:119:1"
},
{
"nodeType": "YulBlock",
"src": "3211:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3226:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3240:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3230:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3255:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3290:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3301:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3286:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3286:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3310:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "3265:20:1"
},
"nodeType": "YulFunctionCall",
"src": "3265:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3255:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3338:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3353:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3367:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3357:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3383:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3418:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3429:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3414:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3414:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3438:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "3393:20:1"
},
"nodeType": "YulFunctionCall",
"src": "3393:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3383:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3034:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3045:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3057:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3065:6:1",
"type": ""
}
],
"src": "2989:474:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3567:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3577:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3589:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3600:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3585:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3585:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3577:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3657:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3670:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3681:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3666:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3666:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "3613:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3613:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "3613:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3539:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3551:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3562:4:1",
"type": ""
}
],
"src": "3469:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3760:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3770:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3785:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3779:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3779:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3770:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3828:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3801:26:1"
},
"nodeType": "YulFunctionCall",
"src": "3801:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3801:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3738:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3746:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3754:5:1",
"type": ""
}
],
"src": "3697:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3940:413:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3986:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3988:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3988:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3988:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3961:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3970:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3957:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3957:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3982:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3953:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3953:32:1"
},
"nodeType": "YulIf",
"src": "3950:119:1"
},
{
"nodeType": "YulBlock",
"src": "4079:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4094:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4108:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4098:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4123:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4169:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4180:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4165:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4165:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4189:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "4133:31:1"
},
"nodeType": "YulFunctionCall",
"src": "4133:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4123:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4217:129:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4232:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4246:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4236:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4262:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4308:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4319:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4304:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4304:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4328:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "4272:31:1"
},
"nodeType": "YulFunctionCall",
"src": "4272:64:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4262:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3902:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3913:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3925:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3933:6:1",
"type": ""
}
],
"src": "3846:507: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 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 cleanup_t_contract$_TestContract_$125(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_TestContract_$125(value) {\n if iszero(eq(value, cleanup_t_contract$_TestContract_$125(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_TestContract_$125(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_TestContract_$125(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_contract$_TestContract_$125t_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_contract$_TestContract_$125(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 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 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_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_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\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 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_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(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_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061003f5760003560e01c80632feed3211461004457806337e2621b1461006d5780634a2ad99f146100ab578063d44abc42146100d4575b600080fd5b34801561005057600080fd5b5061006b6004803603810190610066919061036e565b6100f0565b005b34801561007957600080fd5b50610094600480360381019061008f91906103da565b61015f565b6040516100a2929190610416565b60405180910390f35b3480156100b757600080fd5b506100d260048036038101906100cd919061043f565b6101e4565b005b6100ee60048036038101906100e9919061043f565b610253565b005b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa826040518263ffffffff1660e01b8152600401610129919061047f565b600060405180830381600087803b15801561014357600080fd5b505af1158015610157573d6000803e3d6000fd5b505050505050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1663240882eb6040518163ffffffff1660e01b81526004016040805180830381865afa1580156101af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d391906104af565b915091508181935093505050915091565b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa826040518263ffffffff1660e01b815260040161021d919061047f565b600060405180830381600087803b15801561023757600080fd5b505af115801561024b573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166331d2bf8c34836040518363ffffffff1660e01b815260040161028d919061047f565b6000604051808303818588803b1580156102a657600080fd5b505af11580156102ba573d6000803e3d6000fd5b50505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102f3826102c8565b9050919050565b6000610305826102e8565b9050919050565b610315816102fa565b811461032057600080fd5b50565b6000813590506103328161030c565b92915050565b6000819050919050565b61034b81610338565b811461035657600080fd5b50565b60008135905061036881610342565b92915050565b60008060408385031215610385576103846102c3565b5b600061039385828601610323565b92505060206103a485828601610359565b9150509250929050565b6103b7816102e8565b81146103c257600080fd5b50565b6000813590506103d4816103ae565b92915050565b6000602082840312156103f0576103ef6102c3565b5b60006103fe848285016103c5565b91505092915050565b61041081610338565b82525050565b600060408201905061042b6000830185610407565b6104386020830184610407565b9392505050565b60008060408385031215610456576104556102c3565b5b6000610464858286016103c5565b925050602061047585828601610359565b9150509250929050565b60006020820190506104946000830184610407565b92915050565b6000815190506104a981610342565b92915050565b600080604083850312156104c6576104c56102c3565b5b60006104d48582860161049a565b92505060206104e58582860161049a565b915050925092905056fea26469706673582212201e5d2cb99ed1978dee369b2e5d0c1a294fb8096cb55c3766d7165911ad703f4164736f6c634300080a0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2FEED321 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x37E2621B EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x4A2AD99F EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xD44ABC42 EQ PUSH2 0xD4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x36E JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x94 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x3DA JUMP JUMPDEST PUSH2 0x15F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP3 SWAP2 SWAP1 PUSH2 0x416 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCD SWAP2 SWAP1 PUSH2 0x43F JUMP JUMPDEST PUSH2 0x1E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xEE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x43F JUMP JUMPDEST PUSH2 0x253 JUMP JUMPDEST STOP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4018D9AA DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x157 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x240882EB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x4AF JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4018D9AA DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21D SWAP2 SWAP1 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x31D2BF8C CALLVALUE DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F3 DUP3 PUSH2 0x2C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x305 DUP3 PUSH2 0x2E8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x315 DUP2 PUSH2 0x2FA JUMP JUMPDEST DUP2 EQ PUSH2 0x320 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x332 DUP2 PUSH2 0x30C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34B DUP2 PUSH2 0x338 JUMP JUMPDEST DUP2 EQ PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x368 DUP2 PUSH2 0x342 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x385 JUMPI PUSH2 0x384 PUSH2 0x2C3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x393 DUP6 DUP3 DUP7 ADD PUSH2 0x323 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3A4 DUP6 DUP3 DUP7 ADD PUSH2 0x359 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x3B7 DUP2 PUSH2 0x2E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x3C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3D4 DUP2 PUSH2 0x3AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F0 JUMPI PUSH2 0x3EF PUSH2 0x2C3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3FE DUP5 DUP3 DUP6 ADD PUSH2 0x3C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x410 DUP2 PUSH2 0x338 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x42B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x407 JUMP JUMPDEST PUSH2 0x438 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x407 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x456 JUMPI PUSH2 0x455 PUSH2 0x2C3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x464 DUP6 DUP3 DUP7 ADD PUSH2 0x3C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x475 DUP6 DUP3 DUP7 ADD PUSH2 0x359 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x494 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x407 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4A9 DUP2 PUSH2 0x342 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4C6 JUMPI PUSH2 0x4C5 PUSH2 0x2C3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4D4 DUP6 DUP3 DUP7 ADD PUSH2 0x49A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x4E5 DUP6 DUP3 DUP7 ADD PUSH2 0x49A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E 0x5D 0x2C 0xB9 SWAP15 0xD1 SWAP8 DUP14 0xEE CALLDATASIZE SWAP12 0x2E 0x5D 0xC BYTE 0x29 0x4F 0xB8 MULMOD PUSH13 0xB55C3766D7165911AD703F4164 PUSH20 0x6F6C634300080A00330000000000000000000000 ",
"sourceMap": "157:571:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;291:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;559:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;190:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;397:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;291:90;358:6;:11;;;370:3;358:16;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;291:90;;:::o;559:166::-;619:4;625;641:6;650;673:5;660:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;640:56;;;;714:1;716;706:12;;;;;;559:166;;;:::o;190:96::-;262:5;249:24;;;274:4;249:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;190:96;;:::o;397:149::-;488:5;475:41;;;524:9;536:2;475:64;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;397:149;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:116::-;625:7;654:24;672:5;654:24;:::i;:::-;643:35;;568:116;;;:::o;690:162::-;783:44;821:5;783:44;:::i;:::-;776:5;773:55;763:83;;842:1;839;832:12;763:83;690:162;:::o;858:179::-;924:5;962:6;949:20;940:29;;978:53;1025:5;978:53;:::i;:::-;858:179;;;;:::o;1043:77::-;1080:7;1109:5;1098:16;;1043:77;;;:::o;1126:122::-;1199:24;1217:5;1199:24;:::i;:::-;1192:5;1189:35;1179:63;;1238:1;1235;1228:12;1179:63;1126:122;:::o;1254:139::-;1300:5;1338:6;1325:20;1316:29;;1354:33;1381:5;1354:33;:::i;:::-;1254:139;;;;:::o;1399:514::-;1487:6;1495;1544:2;1532:9;1523:7;1519:23;1515:32;1512:119;;;1550:79;;:::i;:::-;1512:119;1670:1;1695:73;1760:7;1751:6;1740:9;1736:22;1695:73;:::i;:::-;1685:83;;1641:137;1817:2;1843:53;1888:7;1879:6;1868:9;1864:22;1843:53;:::i;:::-;1833:63;;1788:118;1399:514;;;;;:::o;1919:122::-;1992:24;2010:5;1992:24;:::i;:::-;1985:5;1982:35;1972:63;;2031:1;2028;2021:12;1972:63;1919:122;:::o;2047:139::-;2093:5;2131:6;2118:20;2109:29;;2147:33;2174:5;2147:33;:::i;:::-;2047:139;;;;:::o;2192:329::-;2251:6;2300:2;2288:9;2279:7;2275:23;2271:32;2268:119;;;2306:79;;:::i;:::-;2268:119;2426:1;2451:53;2496:7;2487:6;2476:9;2472:22;2451:53;:::i;:::-;2441:63;;2397:117;2192:329;;;;:::o;2527:118::-;2614:24;2632:5;2614:24;:::i;:::-;2609:3;2602:37;2527:118;;:::o;2651:332::-;2772:4;2810:2;2799:9;2795:18;2787:26;;2823:71;2891:1;2880:9;2876:17;2867:6;2823:71;:::i;:::-;2904:72;2972:2;2961:9;2957:18;2948:6;2904:72;:::i;:::-;2651:332;;;;;:::o;2989:474::-;3057:6;3065;3114:2;3102:9;3093:7;3089:23;3085:32;3082:119;;;3120:79;;:::i;:::-;3082:119;3240:1;3265:53;3310:7;3301:6;3290:9;3286:22;3265:53;:::i;:::-;3255:63;;3211:117;3367:2;3393:53;3438:7;3429:6;3418:9;3414:22;3393:53;:::i;:::-;3383:63;;3338:118;2989:474;;;;;:::o;3469:222::-;3562:4;3600:2;3589:9;3585:18;3577:26;;3613:71;3681:1;3670:9;3666:17;3657:6;3613:71;:::i;:::-;3469:222;;;;:::o;3697:143::-;3754:5;3785:6;3779:13;3770:22;;3801:33;3828:5;3801:33;:::i;:::-;3697:143;;;;:::o;3846:507::-;3925:6;3933;3982:2;3970:9;3961:7;3957:23;3953:32;3950:119;;;3988:79;;:::i;:::-;3950:119;4108:1;4133:64;4189:7;4180:6;4169:9;4165:22;4133:64;:::i;:::-;4123:74;;4079:128;4246:2;4272:64;4328:7;4319:6;4308:9;4304:22;4272:64;:::i;:::-;4262:74;;4217:129;3846:507;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "263400",
"executionCost": "306",
"totalCost": "263706"
},
"external": {
"getXandValue(address)": "infinite",
"setX(address,uint256)": "infinite",
"setX_2(address,uint256)": "infinite",
"setXandSendEther(address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"getXandValue(address)": "37e2621b",
"setX(address,uint256)": "4a2ad99f",
"setX_2(address,uint256)": "2feed321",
"setXandSendEther(address,uint256)": "d44abc42"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_test",
"type": "address"
}
],
"name": "getXandValue",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_addr",
"type": "address"
},
{
"internalType": "uint256",
"name": "_xxx",
"type": "uint256"
}
],
"name": "setX",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract TestContract",
"name": "_addr2",
"type": "address"
},
{
"internalType": "uint256",
"name": "_xx",
"type": "uint256"
}
],
"name": "setX_2",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_test",
"type": "address"
},
{
"internalType": "uint256",
"name": "_x",
"type": "uint256"
}
],
"name": "setXandSendEther",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.10+commit.fc410830"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_test",
"type": "address"
}
],
"name": "getXandValue",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_addr",
"type": "address"
},
{
"internalType": "uint256",
"name": "_xxx",
"type": "uint256"
}
],
"name": "setX",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract TestContract",
"name": "_addr2",
"type": "address"
},
{
"internalType": "uint256",
"name": "_xx",
"type": "uint256"
}
],
"name": "setX_2",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_test",
"type": "address"
},
{
"internalType": "uint256",
"name": "_x",
"type": "uint256"
}
],
"name": "setXandSendEther",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"[Example] call Other Contracts.sol": "CallOtherContract"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"[Example] call Other Contracts.sol": {
"keccak256": "0xac9e1ca7e34584ab7893271d39c4bc6eb49e14467d3def2f5c47cebdadec14e7",
"license": "MIT",
"urls": [
"bzz-raw://c29ed42a203398fd381307f49a8c62a99afdb7b5bdc7c58b0235d2bf04cc71dc",
"dweb:/ipfs/QmQBis3Z1k94LTVnTbkzhBioFaHMuF7uxgwTWMw4SZoXnt"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506101d7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306661abd14610046578063371303c01461006457806355f150f11461006e575b600080fd5b61004e610078565b60405161005b91906100cd565b60405180910390f35b61006c61007e565b005b610076610099565b005b60005481565b60016000808282546100909190610117565b92505081905550565b60016000808282546100ab919061016d565b92505081905550565b6000819050919050565b6100c7816100b4565b82525050565b60006020820190506100e260008301846100be565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610122826100b4565b915061012d836100b4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610162576101616100e8565b5b828201905092915050565b6000610178826100b4565b9150610183836100b4565b925082821015610196576101956100e8565b5b82820390509291505056fea2646970667358221220e03f06df727aea3e81d3545431e7322b1d4e0ad46f9cc22a7a68a018cfa25d8964736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D7 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6661ABD EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x371303C0 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x55F150F1 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xCD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x99 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x117 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0x16D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC7 DUP2 PUSH2 0xB4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xBE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x122 DUP3 PUSH2 0xB4 JUMP JUMPDEST SWAP2 POP PUSH2 0x12D DUP4 PUSH2 0xB4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x162 JUMPI PUSH2 0x161 PUSH2 0xE8 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178 DUP3 PUSH2 0xB4 JUMP JUMPDEST SWAP2 POP PUSH2 0x183 DUP4 PUSH2 0xB4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x196 JUMPI PUSH2 0x195 PUSH2 0xE8 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 EXTCODEHASH MOD 0xDF PUSH19 0x7AEA3E81D3545431E7322B1D4E0AD46F9CC22A PUSH27 0x68A018CFA25D8964736F6C634300080B0033000000000000000000 ",
"sourceMap": "104:154:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@count_3": {
"entryPoint": 120,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@desc_19": {
"entryPoint": 153,
"id": 19,
"parameterSlots": 0,
"returnSlots": 0
},
"@inc_11": {
"entryPoint": 126,
"id": 11,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 190,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 205,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 279,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 365,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 180,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 232,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1133:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "470:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "487:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "490:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "480:6:1"
},
"nodeType": "YulFunctionCall",
"src": "480:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "480:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "584:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "587:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "577:6:1"
},
"nodeType": "YulFunctionCall",
"src": "577:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "577:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "608:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "611:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "601:6:1"
},
"nodeType": "YulFunctionCall",
"src": "601:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "601:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "442:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "672:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "682:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "705:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "687:17:1"
},
"nodeType": "YulFunctionCall",
"src": "687:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "682:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "716:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "739:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "721:17:1"
},
"nodeType": "YulFunctionCall",
"src": "721:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "716:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "879:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "881:16:1"
},
"nodeType": "YulFunctionCall",
"src": "881:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "881:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "800:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "807:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "875:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "803:3:1"
},
"nodeType": "YulFunctionCall",
"src": "803:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "797:2:1"
},
"nodeType": "YulFunctionCall",
"src": "797:81:1"
},
"nodeType": "YulIf",
"src": "794:107:1"
},
{
"nodeType": "YulAssignment",
"src": "911:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "922:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "925:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "918:3:1"
},
"nodeType": "YulFunctionCall",
"src": "918:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "911:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "659:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "662:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "668:3:1",
"type": ""
}
],
"src": "628:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "984:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "994:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1017:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "999:17:1"
},
"nodeType": "YulFunctionCall",
"src": "999:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "994:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1028:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1051:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1033:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1033:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1028:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1075:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1077:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1077:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1077:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1069:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1072:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1066:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1066:8:1"
},
"nodeType": "YulIf",
"src": "1063:34:1"
},
{
"nodeType": "YulAssignment",
"src": "1107:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1119:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1122:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1115:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1115:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1107:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "970:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "973:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "979:4:1",
"type": ""
}
],
"src": "939:191:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function 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 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\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806306661abd14610046578063371303c01461006457806355f150f11461006e575b600080fd5b61004e610078565b60405161005b91906100cd565b60405180910390f35b61006c61007e565b005b610076610099565b005b60005481565b60016000808282546100909190610117565b92505081905550565b60016000808282546100ab919061016d565b92505081905550565b6000819050919050565b6100c7816100b4565b82525050565b60006020820190506100e260008301846100be565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610122826100b4565b915061012d836100b4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610162576101616100e8565b5b828201905092915050565b6000610178826100b4565b9150610183836100b4565b925082821015610196576101956100e8565b5b82820390509291505056fea2646970667358221220e03f06df727aea3e81d3545431e7322b1d4e0ad46f9cc22a7a68a018cfa25d8964736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6661ABD EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x371303C0 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x55F150F1 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xCD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x99 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x117 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0x16D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC7 DUP2 PUSH2 0xB4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xBE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x122 DUP3 PUSH2 0xB4 JUMP JUMPDEST SWAP2 POP PUSH2 0x12D DUP4 PUSH2 0xB4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x162 JUMPI PUSH2 0x161 PUSH2 0xE8 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178 DUP3 PUSH2 0xB4 JUMP JUMPDEST SWAP2 POP PUSH2 0x183 DUP4 PUSH2 0xB4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x196 JUMPI PUSH2 0x195 PUSH2 0xE8 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 EXTCODEHASH MOD 0xDF PUSH19 0x7AEA3E81D3545431E7322B1D4E0AD46F9CC22A PUSH27 0x68A018CFA25D8964736F6C634300080B0033000000000000000000 ",
"sourceMap": "104:154:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;127:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;151:51;;;:::i;:::-;;208:48;;;:::i;:::-;;127:17;;;;:::o;151:51::-;194:1;185:5;;:10;;;;;;;:::i;:::-;;;;;;;;151:51::o;208:48::-;252:1;243:5;;:10;;;;;;;:::i;:::-;;;;;;;;208:48::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:180::-;490:77;487:1;480:88;587:4;584:1;577:15;611:4;608:1;601:15;628:305;668:3;687:20;705:1;687:20;:::i;:::-;682:25;;721:20;739:1;721:20;:::i;:::-;716:25;;875:1;807:66;803:74;800:1;797:81;794:107;;;881:18;;:::i;:::-;794:107;925:1;922;918:9;911:16;;628:305;;;;:::o;939:191::-;979:4;999:20;1017:1;999:20;:::i;:::-;994:25;;1033:20;1051:1;1033:20;:::i;:::-;1028:25;;1072:1;1069;1066:8;1063:34;;;1077:18;;:::i;:::-;1063:34;1122:1;1119;1115:9;1107:17;;939:191;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "94200",
"executionCost": "141",
"totalCost": "94341"
},
"external": {
"count()": "2407",
"desc()": "infinite",
"inc()": "infinite"
}
},
"methodIdentifiers": {
"count()": "06661abd",
"desc()": "55f150f1",
"inc()": "371303c0"
}
},
"abi": [
{
"inputs": [],
"name": "count",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "desc",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "inc",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "count",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "desc",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "inc",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"[Example] Interface_2.sol": "Counter"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"[Example] Interface_2.sol": {
"keccak256": "0x5833473d8286a08f37514a13f43845720b585c1e03269dbbd5c3838f0d32c8dc",
"license": "MIT",
"urls": [
"bzz-raw://a997fef6ebdbd6dcddca668b693a0482b030b3e8ad8f8fe79f3250dd56f18981",
"dweb:/ipfs/QmSj7sZwL2MJVZkRnigDZtNuugnb8NzefPUzLMERamCzNM"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220190319fe79f877e367fd8bbef5b68d0d8d8f07084b4895ff42f8011625d5c91c64736f6c634300080a0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 NOT SUB NOT INVALID PUSH26 0xF877E367FD8BBEF5B68D0D8D8F07084B4895FF42F8011625D5C9 SHR PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ",
"sourceMap": "109:31:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600080fdfea2646970667358221220190319fe79f877e367fd8bbef5b68d0d8d8f07084b4895ff42f8011625d5c91c64736f6c634300080a0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 NOT SUB NOT INVALID PUSH26 0xF877E367FD8BBEF5B68D0D8D8F07084B4895FF42F8011625D5C9 SHR PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ",
"sourceMap": "109:31:0:-:0;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "12600",
"executionCost": "66",
"totalCost": "12666"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.10+commit.fc410830"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"test.sol": "DataLocations"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"test.sol": {
"keccak256": "0xe0edf473b1decf635b7401d4969f3dd42c389b10e3514d8ec0bba79eb63c74bd",
"license": "MIT",
"urls": [
"bzz-raw://74b1040fedc1c9fb60bd01271a6c2d9154c1bec6a2b6ee4edfe8e9766f38e766",
"dweb:/ipfs/QmfXTYkaPm9mBjFAj91CTNTReW66yvEusRyZ8ZCgevH1MW"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061016c806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80633089acfa146100515780633629d6561461006f5780633a32b5491461008d5780634b73383f146100ab575b600080fd5b6100596100c9565b604051610066919061011b565b60405180910390f35b6100776100d8565b604051610084919061011b565b60405180910390f35b6100956100e7565b6040516100a2919061011b565b60405180910390f35b6100b36100f0565b6040516100c0919061011b565b60405180910390f35b60006100d36100f9565b905090565b60006100e26100f0565b905090565b6000600f905090565b60006014905090565b60006019905090565b6000819050919050565b61011581610102565b82525050565b6000602082019050610130600083018461010c565b9291505056fea26469706673582212203f1a598381b5bc0fc7635a46d8f72ad2c03347204abdca3ad7493908d5c664dc64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3089ACFA EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x3629D656 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x3A32B549 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x4B73383F EQ PUSH2 0xAB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0xD3 PUSH2 0xF9 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE2 PUSH2 0xF0 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x14 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x19 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x115 DUP2 PUSH2 0x102 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x130 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x10C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH BYTE MSIZE DUP4 DUP2 0xB5 0xBC 0xF 0xC7 PUSH4 0x5A46D8F7 0x2A 0xD2 0xC0 CALLER SELFBALANCE KECCAK256 0x4A 0xBD 0xCA GASPRICE 0xD7 0x49 CODECOPY ADDMOD 0xD5 0xC6 PUSH5 0xDC64736F6C PUSH4 0x4300080B STOP CALLER ",
"sourceMap": "573:160:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@externalFunction_18": {
"entryPoint": 231,
"id": 18,
"parameterSlots": 0,
"returnSlots": 1
},
"@internalFunc_34": {
"entryPoint": 249,
"id": 34,
"parameterSlots": 0,
"returnSlots": 1
},
"@publicFunc_26": {
"entryPoint": 240,
"id": 26,
"parameterSlots": 0,
"returnSlots": 1
},
"@testAccessbleFromInternal_10": {
"entryPoint": 216,
"id": 10,
"parameterSlots": 0,
"returnSlots": 1
},
"@testDerived_54": {
"entryPoint": 201,
"id": 54,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 268,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 283,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 258,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:439:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function 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}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80633089acfa146100515780633629d6561461006f5780633a32b5491461008d5780634b73383f146100ab575b600080fd5b6100596100c9565b604051610066919061011b565b60405180910390f35b6100776100d8565b604051610084919061011b565b60405180910390f35b6100956100e7565b6040516100a2919061011b565b60405180910390f35b6100b36100f0565b6040516100c0919061011b565b60405180910390f35b60006100d36100f9565b905090565b60006100e26100f0565b905090565b6000600f905090565b60006014905090565b60006019905090565b6000819050919050565b61011581610102565b82525050565b6000602082019050610130600083018461010c565b9291505056fea26469706673582212203f1a598381b5bc0fc7635a46d8f72ad2c03347204abdca3ad7493908d5c664dc64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3089ACFA EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x3629D656 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x3A32B549 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x4B73383F EQ PUSH2 0xAB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0xD3 PUSH2 0xF9 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE2 PUSH2 0xF0 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x14 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x19 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x115 DUP2 PUSH2 0x102 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x130 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x10C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH BYTE MSIZE DUP4 DUP2 0xB5 0xBC 0xF 0xC7 PUSH4 0x5A46D8F7 0x2A 0xD2 0xC0 CALLER SELFBALANCE KECCAK256 0x4A 0xBD 0xCA GASPRICE 0xD7 0x49 CODECOPY ADDMOD 0xD5 0xC6 PUSH5 0xDC64736F6C PUSH4 0x4300080B STOP CALLER ",
"sourceMap": "573:160:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;631:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;92:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;198:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;286:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;631:96;675:4;702:14;:12;:14::i;:::-;695:21;;631:96;:::o;92:100::-;150:4;173:12;:10;:12::i;:::-;166:19;;92:100;:::o;198:82::-;248:4;271:2;264:9;;198:82;:::o;286:73::-;328:4;350:2;343:9;;286:73;:::o;365:119::-;411:4;475:2;468:9;;365:119;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "72800",
"executionCost": "123",
"totalCost": "72923"
},
"external": {
"externalFunction()": "359",
"publicFunc()": "381",
"testAccessbleFromInternal()": "372",
"testDerived()": "350"
}
},
"methodIdentifiers": {
"externalFunction()": "3a32b549",
"publicFunc()": "4b73383f",
"testAccessbleFromInternal()": "3629d656",
"testDerived()": "3089acfa"
}
},
"abi": [
{
"inputs": [],
"name": "externalFunction",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "publicFunc",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "testAccessbleFromInternal",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "testDerived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "externalFunction",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "publicFunc",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "testAccessbleFromInternal",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "testDerived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"[Example] VisibilityModifiers.sol": "DerivedContract"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"[Example] VisibilityModifiers.sol": {
"keccak256": "0x9e68750e228f928fdc420422a6bbcdb3cad27c9476c57affbb8a5485a8bfe5a0",
"license": "MIT",
"urls": [
"bzz-raw://89c7fcd2f17926d58d224aec0286e03feb1eebcca4208bf54d74f64db449534e",
"dweb:/ipfs/QmYr6cCR8Rb68u7nUX7GmUTxFd9hJWxog5gLsz2LScWxXS"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_88": {
"entryPoint": null,
"id": 88,
"parameterSlots": 4,
"returnSlots": 0
},
"abi_decode_t_address_fromMemory": {
"entryPoint": 460,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 359,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_uint256t_addresst_uint256_fromMemory": {
"entryPoint": 483,
"id": null,
"parameterSlots": 2,
"returnSlots": 4
},
"abi_encode_t_stringliteral_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34_to_t_string_memory_ptr_fromStack": {
"entryPoint": 930,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 969,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 834,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 644,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 737,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 414,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 382,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 323,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 597,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 318,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"store_literal_in_memory_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34": {
"entryPoint": 851,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 434,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 333,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4080:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "400:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "460:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "517:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "519:6:1"
},
"nodeType": "YulFunctionCall",
"src": "519:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "519:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "483:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "508:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "490:17:1"
},
"nodeType": "YulFunctionCall",
"src": "490:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "480:2:1"
},
"nodeType": "YulFunctionCall",
"src": "480:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
"nodeType": "YulFunctionCall",
"src": "473:43:1"
},
"nodeType": "YulIf",
"src": "470:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "453:5:1",
"type": ""
}
],
"src": "417:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "608:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "618:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "633:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "627:5:1"
},
"nodeType": "YulFunctionCall",
"src": "627:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "618:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "676:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "649:26:1"
},
"nodeType": "YulFunctionCall",
"src": "649:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "649:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "586:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "594:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "602:5:1",
"type": ""
}
],
"src": "545:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "739:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "749:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "764:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "771:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "760:3:1"
},
"nodeType": "YulFunctionCall",
"src": "760:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "749:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "721:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "731:7:1",
"type": ""
}
],
"src": "694:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "871:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "881:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "910:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "892:17:1"
},
"nodeType": "YulFunctionCall",
"src": "892:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "881:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "853:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "863:7:1",
"type": ""
}
],
"src": "826:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "971:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1028:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1037:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1040:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1030:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1030:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1030:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "994:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1019:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1001:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1001:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "991:2:1"
},
"nodeType": "YulFunctionCall",
"src": "991:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "984:6:1"
},
"nodeType": "YulFunctionCall",
"src": "984:43:1"
},
"nodeType": "YulIf",
"src": "981:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "964:5:1",
"type": ""
}
],
"src": "928:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1119:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1129:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1144:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1138:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1138:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1129:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1187:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "1160:26:1"
},
"nodeType": "YulFunctionCall",
"src": "1160:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1160:33:1"
}
]
},
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1097:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1105:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1113:5:1",
"type": ""
}
],
"src": "1056:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1333:692:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1380:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1382:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1382:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1382:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1354:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1363:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1350:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1350:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1375:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1346:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1346:33:1"
},
"nodeType": "YulIf",
"src": "1343:120:1"
},
{
"nodeType": "YulBlock",
"src": "1473:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1488:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1502:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1492:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1517:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1563:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1574:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1559:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1559:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1583:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "1527:31:1"
},
"nodeType": "YulFunctionCall",
"src": "1527:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1517:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1611:129:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1626:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1640:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1630:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1656:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1702:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1713:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1698:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1698:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1722:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "1666:31:1"
},
"nodeType": "YulFunctionCall",
"src": "1666:64:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1656:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1750:129:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1765:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1779:2:1",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1769:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1795:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1841:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1852:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1837:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1837:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1861:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "1805:31:1"
},
"nodeType": "YulFunctionCall",
"src": "1805:64:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1795:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1889:129:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1904:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1918:2:1",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1908:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1934:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1980:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1991:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1976:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1976:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2000:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "1944:31:1"
},
"nodeType": "YulFunctionCall",
"src": "1944:64:1"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "1934:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256t_addresst_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1279:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1290:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1302:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1310:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "1318:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "1326:6:1",
"type": ""
}
],
"src": "1205:820:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2059:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2076:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2079:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2069:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2069:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "2069:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2173:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2176:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2166:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2197:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2200:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2190:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2190:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2190:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "2031:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2261:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2271:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2294:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2276:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2276:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2271:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2305:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2328:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2310:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2310:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2305:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2468:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2470:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2470:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2470:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2389:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2396:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2464:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2392:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2392:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2386:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2386:81:1"
},
"nodeType": "YulIf",
"src": "2383:107:1"
},
{
"nodeType": "YulAssignment",
"src": "2500:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2511:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2514:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2507:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2507:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "2500:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "2248:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "2251:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "2257:3:1",
"type": ""
}
],
"src": "2217:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2576:300:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2586:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2609:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2591:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2591:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2586:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2620:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2643:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2625:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2625:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2620:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2818:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2820:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2820:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2820:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2730:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2723:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2723:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2716:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2716:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2738:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2745:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2813:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "2741:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2741:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2735:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2735:81:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2712:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2712:105:1"
},
"nodeType": "YulIf",
"src": "2709:131:1"
},
{
"nodeType": "YulAssignment",
"src": "2850:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2865:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2868:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "2861:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2861:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "2850:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "2559:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "2562:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "2568:7:1",
"type": ""
}
],
"src": "2528:348:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2978:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2995:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3000:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2988:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2988:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "2988:19:1"
},
{
"nodeType": "YulAssignment",
"src": "3016:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3035:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3040:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3031:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3031:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "3016:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2950:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2955:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "2966:11:1",
"type": ""
}
],
"src": "2882:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3163:117:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3185:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3193:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3181:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3181:14:1"
},
{
"hexValue": "7374617274696e67205072696365206973206c657373207468616e2064697363",
"kind": "string",
"nodeType": "YulLiteral",
"src": "3197:34:1",
"type": "",
"value": "starting Price is less than disc"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3174:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3174:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "3174:58:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3253:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3261:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3249:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3249:15:1"
},
{
"hexValue": "6f756e74",
"kind": "string",
"nodeType": "YulLiteral",
"src": "3266:6:1",
"type": "",
"value": "ount"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3242:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3242:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "3242:31:1"
}
]
},
"name": "store_literal_in_memory_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3155:6:1",
"type": ""
}
],
"src": "3057:223:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3432:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3442:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3508:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3513:2:1",
"type": "",
"value": "36"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3449:58:1"
},
"nodeType": "YulFunctionCall",
"src": "3449:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3442:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3614:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34",
"nodeType": "YulIdentifier",
"src": "3525:88:1"
},
"nodeType": "YulFunctionCall",
"src": "3525:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "3525:93:1"
},
{
"nodeType": "YulAssignment",
"src": "3627:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3638:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3643:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3634:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3634:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3627:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3420:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3428:3:1",
"type": ""
}
],
"src": "3286:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3829:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3839:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3851:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3862:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3847:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3847:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3839:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3886:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3897:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3882:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3882:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3905:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3911:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3901:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3901:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3875:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3875:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "3875:47:1"
},
{
"nodeType": "YulAssignment",
"src": "3931:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4065:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3939:124:1"
},
"nodeType": "YulFunctionCall",
"src": "3939:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3931:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3809:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3824:4:1",
"type": ""
}
],
"src": "3658:419: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 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 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_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\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\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\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 store_literal_in_memory_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34(memPtr) {\n\n mstore(add(memPtr, 0), \"starting Price is less than disc\")\n\n mstore(add(memPtr, 32), \"ount\")\n\n }\n\n function abi_encode_t_stringliteral_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34__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_33b3a2bc7ecd3c5255e7e406b572deb7dc99da624786adca3fd90ac38f2d4f34_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "6101606040523480156200001257600080fd5b5060405162000d9a38038062000d9a8339818101604052810190620000389190620001e3565b3373ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508360e0818152505082610140818152505042610100818152505062093a804262000097919062000284565b610120818152505062093a8061014051620000b39190620002e1565b841015620000f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ef90620003c9565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508060a0818152505050505050620003eb565b600080fd5b6000819050919050565b620001588162000143565b81146200016457600080fd5b50565b60008151905062000178816200014d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001ab826200017e565b9050919050565b620001bd816200019e565b8114620001c957600080fd5b50565b600081519050620001dd81620001b2565b92915050565b600080600080608085870312156200020057620001ff6200013e565b5b6000620002108782880162000167565b9450506020620002238782880162000167565b93505060406200023687828801620001cc565b9250506060620002498782880162000167565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620002918262000143565b91506200029e8362000143565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620002d657620002d562000255565b5b828201905092915050565b6000620002ee8262000143565b9150620002fb8362000143565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000337576200033662000255565b5b828202905092915050565b600082825260208201905092915050565b7f7374617274696e67205072696365206973206c657373207468616e206469736360008201527f6f756e7400000000000000000000000000000000000000000000000000000000602082015250565b6000620003b160248362000342565b9150620003be8262000353565b604082019050919050565b60006020820190508181036000830152620003e481620003a2565b9050919050565b60805160a05160c05160e05161010051610120516101405161091c6200047e600039600081816104e10152610539015260008181610237015261025b01526000818161049901526105080152600081816104bd01526105670152600081816101ef01528181610348015261043c01526000818161036a0152610475015260008181610213015261030c015261091c6000f3fe6080604052600436106100865760003560e01c8063c6bc518211610059578063c6bc518214610116578063c744656514610141578063d6fbf2021461016c578063e6c0e6d514610197578063fb107a4f146101c257610086565b806308551a531461008b57806347ccca02146100b65780638622a689146100e1578063bff29cee1461010c575b600080fd5b34801561009757600080fd5b506100a06101ed565b6040516100ad91906105d8565b60405180910390f35b3480156100c257600080fd5b506100cb610211565b6040516100d89190610652565b60405180910390f35b3480156100ed57600080fd5b506100f6610235565b6040516101039190610686565b60405180910390f35b610114610259565b005b34801561012257600080fd5b5061012b610473565b6040516101389190610686565b60405180910390f35b34801561014d57600080fd5b50610156610497565b6040516101639190610686565b60405180910390f35b34801561017857600080fd5b506101816104bb565b60405161018e9190610686565b60405180910390f35b3480156101a357600080fd5b506101ac6104df565b6040516101b99190610686565b60405180910390f35b3480156101ce57600080fd5b506101d7610503565b6040516101e49190610686565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000042106102bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b290610724565b60405180910390fd5b60006102c5610503565b90508034101561030a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030190610790565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd7f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b81526004016103a7939291906107f2565b600060405180830381600087803b1580156103c157600080fd5b505af11580156103d5573d6000803e3d6000fd5b50505050600081346103e79190610858565b9050600081111561043a573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610438573d6000803e3d6000fd5b505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16ff5b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f0000000000000000000000000000000000000000000000000000000000000000426105329190610858565b90506000817f0000000000000000000000000000000000000000000000000000000000000000610562919061088c565b9050807f00000000000000000000000000000000000000000000000000000000000000006105909190610858565b9250505090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105c282610597565b9050919050565b6105d2816105b7565b82525050565b60006020820190506105ed60008301846105c9565b92915050565b6000819050919050565b600061061861061361060e84610597565b6105f3565b610597565b9050919050565b600061062a826105fd565b9050919050565b600061063c8261061f565b9050919050565b61064c81610631565b82525050565b60006020820190506106676000830184610643565b92915050565b6000819050919050565b6106808161066d565b82525050565b600060208201905061069b6000830184610677565b92915050565b600082825260208201905092915050565b7f41756374696f6e20457870697265642e204c657373207468616e20746865206460008201527f75726174696f6e2e000000000000000000000000000000000000000000000000602082015250565b600061070e6028836106a1565b9150610719826106b2565b604082019050919050565b6000602082019050818103600083015261073d81610701565b9050919050565b7f4572726f723a20455448203c2050726963652100000000000000000000000000600082015250565b600061077a6013836106a1565b915061078582610744565b602082019050919050565b600060208201905081810360008301526107a98161076d565b9050919050565b60006107bb8261061f565b9050919050565b6107cb816107b0565b82525050565b60006107dc82610597565b9050919050565b6107ec816107d1565b82525050565b600060608201905061080760008301866107c2565b61081460208301856107e3565b6108216040830184610677565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108638261066d565b915061086e8361066d565b92508282101561088157610880610829565b5b828203905092915050565b60006108978261066d565b91506108a28361066d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156108db576108da610829565b5b82820290509291505056fea2646970667358221220ef59e70e50d6f30b87b0d53689a4e03861cc8bd0c32e2eeda5e97c7082e952b964736f6c634300080b0033",
"opcodes": "PUSH2 0x160 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xD9A CODESIZE SUB DUP1 PUSH3 0xD9A DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x38 SWAP2 SWAP1 PUSH3 0x1E3 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xC0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP4 PUSH1 0xE0 DUP2 DUP2 MSTORE POP POP DUP3 PUSH2 0x140 DUP2 DUP2 MSTORE POP POP TIMESTAMP PUSH2 0x100 DUP2 DUP2 MSTORE POP POP PUSH3 0x93A80 TIMESTAMP PUSH3 0x97 SWAP2 SWAP1 PUSH3 0x284 JUMP JUMPDEST PUSH2 0x120 DUP2 DUP2 MSTORE POP POP PUSH3 0x93A80 PUSH2 0x140 MLOAD PUSH3 0xB3 SWAP2 SWAP1 PUSH3 0x2E1 JUMP JUMPDEST DUP5 LT ISZERO PUSH3 0xF8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xEF SWAP1 PUSH3 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 PUSH1 0xA0 DUP2 DUP2 MSTORE POP POP POP POP POP POP PUSH3 0x3EB JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x158 DUP2 PUSH3 0x143 JUMP JUMPDEST DUP2 EQ PUSH3 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x178 DUP2 PUSH3 0x14D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1AB DUP3 PUSH3 0x17E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1BD DUP2 PUSH3 0x19E JUMP JUMPDEST DUP2 EQ PUSH3 0x1C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x1DD DUP2 PUSH3 0x1B2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x200 JUMPI PUSH3 0x1FF PUSH3 0x13E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x210 DUP8 DUP3 DUP9 ADD PUSH3 0x167 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH3 0x223 DUP8 DUP3 DUP9 ADD PUSH3 0x167 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH3 0x236 DUP8 DUP3 DUP9 ADD PUSH3 0x1CC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH3 0x249 DUP8 DUP3 DUP9 ADD PUSH3 0x167 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x291 DUP3 PUSH3 0x143 JUMP JUMPDEST SWAP2 POP PUSH3 0x29E DUP4 PUSH3 0x143 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH3 0x2D6 JUMPI PUSH3 0x2D5 PUSH3 0x255 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2EE DUP3 PUSH3 0x143 JUMP JUMPDEST SWAP2 POP PUSH3 0x2FB DUP4 PUSH3 0x143 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH3 0x337 JUMPI PUSH3 0x336 PUSH3 0x255 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x7374617274696E67205072696365206973206C657373207468616E2064697363 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F756E7400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3B1 PUSH1 0x24 DUP4 PUSH3 0x342 JUMP JUMPDEST SWAP2 POP PUSH3 0x3BE DUP3 PUSH3 0x353 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x3E4 DUP2 PUSH3 0x3A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x91C PUSH3 0x47E PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x4E1 ADD MSTORE PUSH2 0x539 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x237 ADD MSTORE PUSH2 0x25B ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x499 ADD MSTORE PUSH2 0x508 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4BD ADD MSTORE PUSH2 0x567 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x1EF ADD MSTORE DUP2 DUP2 PUSH2 0x348 ADD MSTORE PUSH2 0x43C ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x36A ADD MSTORE PUSH2 0x475 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x213 ADD MSTORE PUSH2 0x30C ADD MSTORE PUSH2 0x91C PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC6BC5182 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xC6BC5182 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xC7446565 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0xD6FBF202 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0xE6C0E6D5 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0xFB107A4F EQ PUSH2 0x1C2 JUMPI PUSH2 0x86 JUMP JUMPDEST DUP1 PUSH4 0x8551A53 EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0x47CCCA02 EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x8622A689 EQ PUSH2 0xE1 JUMPI DUP1 PUSH4 0xBFF29CEE EQ PUSH2 0x10C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x1ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x5D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF6 PUSH2 0x235 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x114 PUSH2 0x259 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12B PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x156 PUSH2 0x497 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH2 0x4BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AC PUSH2 0x4DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B9 SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D7 PUSH2 0x503 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E4 SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 TIMESTAMP LT PUSH2 0x2BB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B2 SWAP1 PUSH2 0x724 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C5 PUSH2 0x503 JUMP JUMPDEST SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x30A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x301 SWAP1 PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD PUSH32 0x0 CALLER PUSH32 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7F2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 DUP2 CALLVALUE PUSH2 0x3E7 SWAP2 SWAP1 PUSH2 0x858 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x43A JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x438 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 TIMESTAMP PUSH2 0x532 SWAP2 SWAP1 PUSH2 0x858 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH32 0x0 PUSH2 0x562 SWAP2 SWAP1 PUSH2 0x88C JUMP JUMPDEST SWAP1 POP DUP1 PUSH32 0x0 PUSH2 0x590 SWAP2 SWAP1 PUSH2 0x858 JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 DUP3 PUSH2 0x597 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5D2 DUP2 PUSH2 0x5B7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5ED PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5C9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x618 PUSH2 0x613 PUSH2 0x60E DUP5 PUSH2 0x597 JUMP JUMPDEST PUSH2 0x5F3 JUMP JUMPDEST PUSH2 0x597 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62A DUP3 PUSH2 0x5FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x63C DUP3 PUSH2 0x61F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x64C DUP2 PUSH2 0x631 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x667 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x643 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x680 DUP2 PUSH2 0x66D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x69B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x677 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x41756374696F6E20457870697265642E204C657373207468616E207468652064 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x75726174696F6E2E000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x70E PUSH1 0x28 DUP4 PUSH2 0x6A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x719 DUP3 PUSH2 0x6B2 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73D DUP2 PUSH2 0x701 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4572726F723A20455448203C2050726963652100000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77A PUSH1 0x13 DUP4 PUSH2 0x6A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x785 DUP3 PUSH2 0x744 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x7A9 DUP2 PUSH2 0x76D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BB DUP3 PUSH2 0x61F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7CB DUP2 PUSH2 0x7B0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DC DUP3 PUSH2 0x597 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7EC DUP2 PUSH2 0x7D1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x807 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x814 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x7E3 JUMP JUMPDEST PUSH2 0x821 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x677 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x863 DUP3 PUSH2 0x66D JUMP JUMPDEST SWAP2 POP PUSH2 0x86E DUP4 PUSH2 0x66D JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x881 JUMPI PUSH2 0x880 PUSH2 0x829 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x897 DUP3 PUSH2 0x66D JUMP JUMPDEST SWAP2 POP PUSH2 0x8A2 DUP4 PUSH2 0x66D JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x8DB JUMPI PUSH2 0x8DA PUSH2 0x829 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF MSIZE 0xE7 0xE POP 0xD6 RETURN SIGNEXTEND DUP8 0xB0 0xD5 CALLDATASIZE DUP10 LOG4 0xE0 CODESIZE PUSH2 0xCC8B 0xD0 0xC3 0x2E 0x2E 0xED 0xA5 0xE9 PUSH29 0x7082E952B964736F6C634300080B003300000000000000000000000000 ",
"sourceMap": "189:1612:0:-:0;;;531:501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;676:10;659:28;;;;;;;;;;713:14;697:30;;;;;;752:13;737:28;;;;;;785:15;775:25;;;;;;250:6;822:15;:26;;;;:::i;:::-;810:38;;;;;;250:6;898:12;;:23;;;;:::i;:::-;880:14;:41;;859:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;996:4;982:19;;;;;;;;;;1019:6;1011:14;;;;;;531:501;;;;189:1612;;88:117:1;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:126::-;731:7;771:42;764:5;760:54;749:65;;694:126;;;:::o;826:96::-;863:7;892:24;910:5;892:24;:::i;:::-;881:35;;826:96;;;:::o;928:122::-;1001:24;1019:5;1001:24;:::i;:::-;994:5;991:35;981:63;;1040:1;1037;1030:12;981:63;928:122;:::o;1056:143::-;1113:5;1144:6;1138:13;1129:22;;1160:33;1187:5;1160:33;:::i;:::-;1056:143;;;;:::o;1205:820::-;1302:6;1310;1318;1326;1375:3;1363:9;1354:7;1350:23;1346:33;1343:120;;;1382:79;;:::i;:::-;1343:120;1502:1;1527:64;1583:7;1574:6;1563:9;1559:22;1527:64;:::i;:::-;1517:74;;1473:128;1640:2;1666:64;1722:7;1713:6;1702:9;1698:22;1666:64;:::i;:::-;1656:74;;1611:129;1779:2;1805:64;1861:7;1852:6;1841:9;1837:22;1805:64;:::i;:::-;1795:74;;1750:129;1918:2;1944:64;2000:7;1991:6;1980:9;1976:22;1944:64;:::i;:::-;1934:74;;1889:129;1205:820;;;;;;;:::o;2031:180::-;2079:77;2076:1;2069:88;2176:4;2173:1;2166:15;2200:4;2197:1;2190:15;2217:305;2257:3;2276:20;2294:1;2276:20;:::i;:::-;2271:25;;2310:20;2328:1;2310:20;:::i;:::-;2305:25;;2464:1;2396:66;2392:74;2389:1;2386:81;2383:107;;;2470:18;;:::i;:::-;2383:107;2514:1;2511;2507:9;2500:16;;2217:305;;;;:::o;2528:348::-;2568:7;2591:20;2609:1;2591:20;:::i;:::-;2586:25;;2625:20;2643:1;2625:20;:::i;:::-;2620:25;;2813:1;2745:66;2741:74;2738:1;2735:81;2730:1;2723:9;2716:17;2712:105;2709:131;;;2820:18;;:::i;:::-;2709:131;2868:1;2865;2861:9;2850:20;;2528:348;;;;:::o;2882:169::-;2966:11;3000:6;2995:3;2988:19;3040:4;3035:3;3031:14;3016:29;;2882:169;;;;:::o;3057:223::-;3197:34;3193:1;3185:6;3181:14;3174:58;3266:6;3261:2;3253:6;3249:15;3242:31;3057:223;:::o;3286:366::-;3428:3;3449:67;3513:2;3508:3;3449:67;:::i;:::-;3442:74;;3525:93;3614:3;3525:93;:::i;:::-;3643:2;3638:3;3634:12;3627:19;;3286:366;;;:::o;3658:419::-;3824:4;3862:2;3851:9;3847:18;3839:26;;3911:9;3905:4;3901:20;3897:1;3886:9;3882:17;3875:47;3939:131;4065:4;3939:131;:::i;:::-;3931:139;;3658:419;;;:::o;189:1612:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@buyNFT_170": {
"entryPoint": 601,
"id": 170,
"parameterSlots": 0,
"returnSlots": 0
},
"@discountRate_29": {
"entryPoint": 1247,
"id": 29,
"parameterSlots": 0,
"returnSlots": 0
},
"@expiresAt_27": {
"entryPoint": 565,
"id": 27,
"parameterSlots": 0,
"returnSlots": 0
},
"@getNFTPrice_111": {
"entryPoint": 1283,
"id": 111,
"parameterSlots": 0,
"returnSlots": 1
},
"@nftId_19": {
"entryPoint": 1139,
"id": 19,
"parameterSlots": 0,
"returnSlots": 0
},
"@nft_17": {
"entryPoint": 529,
"id": 17,
"parameterSlots": 0,
"returnSlots": 0
},
"@seller_21": {
"entryPoint": 493,
"id": 21,
"parameterSlots": 0,
"returnSlots": 0
},
"@startAt_25": {
"entryPoint": 1175,
"id": 25,
"parameterSlots": 0,
"returnSlots": 0
},
"@startingPrice_23": {
"entryPoint": 1211,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_address_payable_to_t_address_fromStack": {
"entryPoint": 1986,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_payable_to_t_address_payable_fromStack": {
"entryPoint": 1481,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 2019,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_contract$_IERC721_$11_to_t_address_fromStack": {
"entryPoint": 1603,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_stringliteral_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1793,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1901,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1655,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed": {
"entryPoint": 1496,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_payable_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 2034,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_contract$_IERC721_$11__to_t_address__fromStack_reversed": {
"entryPoint": 1618,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1828,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1936,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1670,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 1697,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 2188,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 2136,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 2001,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_address_payable": {
"entryPoint": 1463,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1431,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1645,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_address_payable_to_t_address": {
"entryPoint": 1968,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_contract$_IERC721_$11_to_t_address": {
"entryPoint": 1585,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_address": {
"entryPoint": 1567,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_uint160": {
"entryPoint": 1533,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"identity": {
"entryPoint": 1523,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 2089,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"store_literal_in_memory_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5": {
"entryPoint": 1714,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308": {
"entryPoint": 1860,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:5899:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "77:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "84:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "73:3:1"
},
"nodeType": "YulFunctionCall",
"src": "73:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "192:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "202:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "231:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "213:17:1"
},
"nodeType": "YulFunctionCall",
"src": "213:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "202:7:1"
}
]
}
]
},
"name": "cleanup_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "174:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "184:7:1",
"type": ""
}
],
"src": "139:104:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "330:61:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "347:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "378:5:1"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "352:25:1"
},
"nodeType": "YulFunctionCall",
"src": "352:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "340:6:1"
},
"nodeType": "YulFunctionCall",
"src": "340:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "340:45:1"
}
]
},
"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "318:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "325:3:1",
"type": ""
}
],
"src": "249:142:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:140:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "533:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "544:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "529:3:1"
},
"nodeType": "YulFunctionCall",
"src": "529:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "521:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "617:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "630:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "641:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "626:3:1"
},
"nodeType": "YulFunctionCall",
"src": "626:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
"nodeType": "YulIdentifier",
"src": "557:59:1"
},
"nodeType": "YulFunctionCall",
"src": "557:87:1"
},
"nodeType": "YulExpressionStatement",
"src": "557:87:1"
}
]
},
"name": "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "483:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "495:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "506:4:1",
"type": ""
}
],
"src": "397:254:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "689:28:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "699:12:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "706:5:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "699:3:1"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "675:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "685:3:1",
"type": ""
}
],
"src": "657:60:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "783:82:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "793:66:1",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "851:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "833:17:1"
},
"nodeType": "YulFunctionCall",
"src": "833:24:1"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "824:8:1"
},
"nodeType": "YulFunctionCall",
"src": "824:34:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "806:17:1"
},
"nodeType": "YulFunctionCall",
"src": "806:53:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "793:9:1"
}
]
}
]
},
"name": "convert_t_uint160_to_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "763:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "773:9:1",
"type": ""
}
],
"src": "723:142:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "931:66:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "941:50:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "985:5:1"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_uint160",
"nodeType": "YulIdentifier",
"src": "954:30:1"
},
"nodeType": "YulFunctionCall",
"src": "954:37:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "941:9:1"
}
]
}
]
},
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "911:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "921:9:1",
"type": ""
}
],
"src": "871:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1077:66:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1087:50:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1131:5:1"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulIdentifier",
"src": "1100:30:1"
},
"nodeType": "YulFunctionCall",
"src": "1100:37:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "1087:9:1"
}
]
}
]
},
"name": "convert_t_contract$_IERC721_$11_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1057:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "1067:9:1",
"type": ""
}
],
"src": "1003:140:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1228:80:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1245:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1295:5:1"
}
],
"functionName": {
"name": "convert_t_contract$_IERC721_$11_to_t_address",
"nodeType": "YulIdentifier",
"src": "1250:44:1"
},
"nodeType": "YulFunctionCall",
"src": "1250:51:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1238:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1238:64:1"
},
"nodeType": "YulExpressionStatement",
"src": "1238:64:1"
}
]
},
"name": "abi_encode_t_contract$_IERC721_$11_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1216:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1223:3:1",
"type": ""
}
],
"src": "1149:159:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1426:138:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1436:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1448:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1459:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1444:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1444:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1436:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1530:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1543:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1554:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1539:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1539:17:1"
}
],
"functionName": {
"name": "abi_encode_t_contract$_IERC721_$11_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "1472:57:1"
},
"nodeType": "YulFunctionCall",
"src": "1472:85:1"
},
"nodeType": "YulExpressionStatement",
"src": "1472:85:1"
}
]
},
"name": "abi_encode_tuple_t_contract$_IERC721_$11__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1398:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1410:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1421:4:1",
"type": ""
}
],
"src": "1314:250:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1615:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1625:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1636:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1625:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1597:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1607:7:1",
"type": ""
}
],
"src": "1570:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1718:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1735:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1758:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1740:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1740:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1728:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1728:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1728:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1706:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1713:3:1",
"type": ""
}
],
"src": "1653:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1875:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1885:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1897:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1908:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1893:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1893:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1885:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1965:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1978:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1989:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1974:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1974:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1921:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1921:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1921:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1847:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1859:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1870:4:1",
"type": ""
}
],
"src": "1777:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2101:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2118:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2123:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2111:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2111:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "2111:19:1"
},
{
"nodeType": "YulAssignment",
"src": "2139:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2158:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2163:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2154:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2154:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "2139:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2073:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2078:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "2089:11:1",
"type": ""
}
],
"src": "2005:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2286:121:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2308:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2316:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2304:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2304:14:1"
},
{
"hexValue": "41756374696f6e20457870697265642e204c657373207468616e207468652064",
"kind": "string",
"nodeType": "YulLiteral",
"src": "2320:34:1",
"type": "",
"value": "Auction Expired. Less than the d"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2297:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2297:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "2297:58:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2376:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2384:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2372:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2372:15:1"
},
{
"hexValue": "75726174696f6e2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "2389:10:1",
"type": "",
"value": "uration."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2365:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2365:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "2365:35:1"
}
]
},
"name": "store_literal_in_memory_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "2278:6:1",
"type": ""
}
],
"src": "2180:227:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2559:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2569:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2635:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2640:2:1",
"type": "",
"value": "40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2576:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2576:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2569:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2741:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5",
"nodeType": "YulIdentifier",
"src": "2652:88:1"
},
"nodeType": "YulFunctionCall",
"src": "2652:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "2652:93:1"
},
{
"nodeType": "YulAssignment",
"src": "2754:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2765:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2770:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2761:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2761:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2754:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2547:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2555:3:1",
"type": ""
}
],
"src": "2413:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2956:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2966:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2978:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2989:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2974:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2974:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2966:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3013:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3024:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3009:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3009:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3032:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3038:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3028:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3028:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3002:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3002:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "3002:47:1"
},
{
"nodeType": "YulAssignment",
"src": "3058:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3192:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3066:124:1"
},
"nodeType": "YulFunctionCall",
"src": "3066:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3058:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2936:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2951:4:1",
"type": ""
}
],
"src": "2785:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3316:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3338:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3346:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3334:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3334:14:1"
},
{
"hexValue": "4572726f723a20455448203c20507269636521",
"kind": "string",
"nodeType": "YulLiteral",
"src": "3350:21:1",
"type": "",
"value": "Error: ETH < Price!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3327:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3327:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "3327:45:1"
}
]
},
"name": "store_literal_in_memory_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3308:6:1",
"type": ""
}
],
"src": "3210:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3531:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3541:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3607:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3612:2:1",
"type": "",
"value": "19"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3548:58:1"
},
"nodeType": "YulFunctionCall",
"src": "3548:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3541:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3713:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308",
"nodeType": "YulIdentifier",
"src": "3624:88:1"
},
"nodeType": "YulFunctionCall",
"src": "3624:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "3624:93:1"
},
{
"nodeType": "YulAssignment",
"src": "3726:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3737:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3742:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3733:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3733:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3726:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3519:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3527:3:1",
"type": ""
}
],
"src": "3385:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3928:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3938:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3950:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3961:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3946:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3946:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3938:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3985:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3996:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3981:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3981:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4004:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4010:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4000:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4000:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3974:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3974:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "3974:47:1"
},
{
"nodeType": "YulAssignment",
"src": "4030:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4164:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4038:124:1"
},
"nodeType": "YulFunctionCall",
"src": "4038:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4030:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3908:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3923:4:1",
"type": ""
}
],
"src": "3757:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4250:66:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4260:50:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4304:5:1"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulIdentifier",
"src": "4273:30:1"
},
"nodeType": "YulFunctionCall",
"src": "4273:37:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "4260:9:1"
}
]
}
]
},
"name": "convert_t_address_payable_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4230:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "4240:9:1",
"type": ""
}
],
"src": "4182:134:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4395:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4412:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4456:5:1"
}
],
"functionName": {
"name": "convert_t_address_payable_to_t_address",
"nodeType": "YulIdentifier",
"src": "4417:38:1"
},
"nodeType": "YulFunctionCall",
"src": "4417:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4405:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4405:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "4405:58:1"
}
]
},
"name": "abi_encode_t_address_payable_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4383:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4390:3:1",
"type": ""
}
],
"src": "4322:147:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4520:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4530:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4559:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "4541:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4541:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4530:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4502:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4512:7:1",
"type": ""
}
],
"src": "4475:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4642:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4659:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4682:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "4664:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4664:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4652:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4652:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "4652:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4630:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4637:3:1",
"type": ""
}
],
"src": "4577:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4863:296:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4873:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4885:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4896:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4881:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4881:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4873:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4961:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4974:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4985:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4970:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_payable_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "4909:51:1"
},
"nodeType": "YulFunctionCall",
"src": "4909:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4909:79:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5042:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5055:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5066:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5051:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5051:18:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "4998:43:1"
},
"nodeType": "YulFunctionCall",
"src": "4998:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "4998:72:1"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "5124:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5137:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5148:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5133:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5133:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "5080:43:1"
},
"nodeType": "YulFunctionCall",
"src": "5080:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "5080:72:1"
}
]
},
"name": "abi_encode_tuple_t_address_payable_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4819:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "4831:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4839:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4847:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4858:4:1",
"type": ""
}
],
"src": "4701:458:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5193:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5210:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5213:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5203:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5203:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "5203:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5307:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5310:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5300:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5300:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5300:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5331:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5334:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5324:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5324:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5324:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "5165:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5396:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5406:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5429:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "5411:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5411:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5406:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "5440:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5463:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "5445:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5445:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5440:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5487:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "5489:16:1"
},
"nodeType": "YulFunctionCall",
"src": "5489:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "5489:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5481:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5484:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "5478:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5478:8:1"
},
"nodeType": "YulIf",
"src": "5475:34:1"
},
{
"nodeType": "YulAssignment",
"src": "5519:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5531:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5534:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5527:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5527:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "5519:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "5382:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "5385:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "5391:4:1",
"type": ""
}
],
"src": "5351:191:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5596:300:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5606:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5629:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "5611:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5611:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5606:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "5640:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5663:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "5645:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5645:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5640:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5838:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "5840:16:1"
},
"nodeType": "YulFunctionCall",
"src": "5840:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "5840:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5750:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5743:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5743:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5736:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5736:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5758:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5765:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5833:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "5761:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5761:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5755:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5755:81:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5732:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5732:105:1"
},
"nodeType": "YulIf",
"src": "5729:131:1"
},
{
"nodeType": "YulAssignment",
"src": "5870:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5885:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5888:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "5881:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5881:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "5870:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "5579:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "5582:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "5588:7:1",
"type": ""
}
],
"src": "5548:348:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value0, add(headStart, 0))\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC721_$11_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC721_$11_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC721_$11_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IERC721_$11__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IERC721_$11_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function 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 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 store_literal_in_memory_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5(memPtr) {\n\n mstore(add(memPtr, 0), \"Auction Expired. Less than the d\")\n\n mstore(add(memPtr, 32), \"uration.\")\n\n }\n\n function abi_encode_t_stringliteral_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5__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_3beb62e26dcb4d86938fea8ee1543ee9b7d4e0af842f96a967236c0c49095de5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308(memPtr) {\n\n mstore(add(memPtr, 0), \"Error: ETH < Price!\")\n\n }\n\n function abi_encode_t_stringliteral_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308__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_8d100ba7bc8b542defefad1ad09b5f167266cdcf2ad41de9f71c5e25f7d8b308_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function convert_t_address_payable_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_address_payable_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_address_payable_to_t_address(value))\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_payable_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_payable_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 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\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {
"17": [
{
"length": 32,
"start": 531
},
{
"length": 32,
"start": 780
}
],
"19": [
{
"length": 32,
"start": 874
},
{
"length": 32,
"start": 1141
}
],
"21": [
{
"length": 32,
"start": 495
},
{
"length": 32,
"start": 840
},
{
"length": 32,
"start": 1084
}
],
"23": [
{
"length": 32,
"start": 1213
},
{
"length": 32,
"start": 1383
}
],
"25": [
{
"length": 32,
"start": 1177
},
{
"length": 32,
"start": 1288
}
],
"27": [
{
"length": 32,
"start": 567
},
{
"length": 32,
"start": 603
}
],
"29": [
{
"length": 32,
"start": 1249
},
{
"length": 32,
"start": 1337
}
]
},
"linkReferences": {},
"object": "6080604052600436106100865760003560e01c8063c6bc518211610059578063c6bc518214610116578063c744656514610141578063d6fbf2021461016c578063e6c0e6d514610197578063fb107a4f146101c257610086565b806308551a531461008b57806347ccca02146100b65780638622a689146100e1578063bff29cee1461010c575b600080fd5b34801561009757600080fd5b506100a06101ed565b6040516100ad91906105d8565b60405180910390f35b3480156100c257600080fd5b506100cb610211565b6040516100d89190610652565b60405180910390f35b3480156100ed57600080fd5b506100f6610235565b6040516101039190610686565b60405180910390f35b610114610259565b005b34801561012257600080fd5b5061012b610473565b6040516101389190610686565b60405180910390f35b34801561014d57600080fd5b50610156610497565b6040516101639190610686565b60405180910390f35b34801561017857600080fd5b506101816104bb565b60405161018e9190610686565b60405180910390f35b3480156101a357600080fd5b506101ac6104df565b6040516101b99190610686565b60405180910390f35b3480156101ce57600080fd5b506101d7610503565b6040516101e49190610686565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000042106102bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b290610724565b60405180910390fd5b60006102c5610503565b90508034101561030a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030190610790565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd7f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b81526004016103a7939291906107f2565b600060405180830381600087803b1580156103c157600080fd5b505af11580156103d5573d6000803e3d6000fd5b50505050600081346103e79190610858565b9050600081111561043a573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610438573d6000803e3d6000fd5b505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16ff5b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f0000000000000000000000000000000000000000000000000000000000000000426105329190610858565b90506000817f0000000000000000000000000000000000000000000000000000000000000000610562919061088c565b9050807f00000000000000000000000000000000000000000000000000000000000000006105909190610858565b9250505090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105c282610597565b9050919050565b6105d2816105b7565b82525050565b60006020820190506105ed60008301846105c9565b92915050565b6000819050919050565b600061061861061361060e84610597565b6105f3565b610597565b9050919050565b600061062a826105fd565b9050919050565b600061063c8261061f565b9050919050565b61064c81610631565b82525050565b60006020820190506106676000830184610643565b92915050565b6000819050919050565b6106808161066d565b82525050565b600060208201905061069b6000830184610677565b92915050565b600082825260208201905092915050565b7f41756374696f6e20457870697265642e204c657373207468616e20746865206460008201527f75726174696f6e2e000000000000000000000000000000000000000000000000602082015250565b600061070e6028836106a1565b9150610719826106b2565b604082019050919050565b6000602082019050818103600083015261073d81610701565b9050919050565b7f4572726f723a20455448203c2050726963652100000000000000000000000000600082015250565b600061077a6013836106a1565b915061078582610744565b602082019050919050565b600060208201905081810360008301526107a98161076d565b9050919050565b60006107bb8261061f565b9050919050565b6107cb816107b0565b82525050565b60006107dc82610597565b9050919050565b6107ec816107d1565b82525050565b600060608201905061080760008301866107c2565b61081460208301856107e3565b6108216040830184610677565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108638261066d565b915061086e8361066d565b92508282101561088157610880610829565b5b828203905092915050565b60006108978261066d565b91506108a28361066d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156108db576108da610829565b5b82820290509291505056fea2646970667358221220ef59e70e50d6f30b87b0d53689a4e03861cc8bd0c32e2eeda5e97c7082e952b964736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC6BC5182 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xC6BC5182 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xC7446565 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0xD6FBF202 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0xE6C0E6D5 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0xFB107A4F EQ PUSH2 0x1C2 JUMPI PUSH2 0x86 JUMP JUMPDEST DUP1 PUSH4 0x8551A53 EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0x47CCCA02 EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x8622A689 EQ PUSH2 0xE1 JUMPI DUP1 PUSH4 0xBFF29CEE EQ PUSH2 0x10C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x1ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x5D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF6 PUSH2 0x235 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x114 PUSH2 0x259 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12B PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x156 PUSH2 0x497 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH2 0x4BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AC PUSH2 0x4DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B9 SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D7 PUSH2 0x503 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E4 SWAP2 SWAP1 PUSH2 0x686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 TIMESTAMP LT PUSH2 0x2BB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B2 SWAP1 PUSH2 0x724 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C5 PUSH2 0x503 JUMP JUMPDEST SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x30A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x301 SWAP1 PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD PUSH32 0x0 CALLER PUSH32 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7F2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 DUP2 CALLVALUE PUSH2 0x3E7 SWAP2 SWAP1 PUSH2 0x858 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x43A JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x438 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 TIMESTAMP PUSH2 0x532 SWAP2 SWAP1 PUSH2 0x858 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH32 0x0 PUSH2 0x562 SWAP2 SWAP1 PUSH2 0x88C JUMP JUMPDEST SWAP1 POP DUP1 PUSH32 0x0 PUSH2 0x590 SWAP2 SWAP1 PUSH2 0x858 JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 DUP3 PUSH2 0x597 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5D2 DUP2 PUSH2 0x5B7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5ED PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5C9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x618 PUSH2 0x613 PUSH2 0x60E DUP5 PUSH2 0x597 JUMP JUMPDEST PUSH2 0x5F3 JUMP JUMPDEST PUSH2 0x597 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62A DUP3 PUSH2 0x5FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x63C DUP3 PUSH2 0x61F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x64C DUP2 PUSH2 0x631 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x667 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x643 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x680 DUP2 PUSH2 0x66D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x69B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x677 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x41756374696F6E20457870697265642E204C657373207468616E207468652064 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x75726174696F6E2E000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x70E PUSH1 0x28 DUP4 PUSH2 0x6A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x719 DUP3 PUSH2 0x6B2 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73D DUP2 PUSH2 0x701 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4572726F723A20455448203C2050726963652100000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77A PUSH1 0x13 DUP4 PUSH2 0x6A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x785 DUP3 PUSH2 0x744 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x7A9 DUP2 PUSH2 0x76D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BB DUP3 PUSH2 0x61F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7CB DUP2 PUSH2 0x7B0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DC DUP3 PUSH2 0x597 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7EC DUP2 PUSH2 0x7D1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x807 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x814 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x7E3 JUMP JUMPDEST PUSH2 0x821 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x677 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x863 DUP3 PUSH2 0x66D JUMP JUMPDEST SWAP2 POP PUSH2 0x86E DUP4 PUSH2 0x66D JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x881 JUMPI PUSH2 0x880 PUSH2 0x829 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x897 DUP3 PUSH2 0x66D JUMP JUMPDEST SWAP2 POP PUSH2 0x8A2 DUP4 PUSH2 0x66D JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x8DB JUMPI PUSH2 0x8DA PUSH2 0x829 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF MSIZE 0xE7 0xE POP 0xD6 RETURN SIGNEXTEND DUP8 0xB0 0xD5 CALLDATASIZE DUP10 LOG4 0xE0 CODESIZE PUSH2 0xCC8B 0xD0 0xC3 0x2E 0x2E 0xED 0xA5 0xE9 PUSH29 0x7082E952B964736F6C634300080B003300000000000000000000000000 ",
"sourceMap": "189:1612:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;263:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;453:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1303:496;;;:::i;:::-;;297:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;418:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;377:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;490:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1038:259;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;331:40;;;:::o;263:28::-;;;:::o;453:31::-;;;:::o;1303:496::-;1374:9;1356:15;:27;1348:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;1439:10;1452:13;:11;:13::i;:::-;1439:26;;1496:5;1483:9;:18;;1475:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;1536:3;:16;;;1553:6;1561:10;1573:5;1536:43;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1589:11;1615:5;1603:9;:17;;;;:::i;:::-;1589:31;;1643:1;1634:6;:10;1630:77;;;1668:10;1660:28;;:36;1689:6;1660:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:77;1729:6;1716:20;;;297:27;;;:::o;418:29::-;;;:::o;377:35::-;;;:::o;490:34::-;;;:::o;1038:259::-;1082:4;1098:16;1135:7;1117:15;:25;;;;:::i;:::-;1098:44;;1152:13;1183:11;1168:12;:26;;;;:::i;:::-;1152:42;;1282:8;1266:13;:24;;;;:::i;:::-;1259:31;;;;1038:259;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:104::-;184:7;213:24;231:5;213:24;:::i;:::-;202:35;;139:104;;;:::o;249:142::-;352:32;378:5;352:32;:::i;:::-;347:3;340:45;249:142;;:::o;397:254::-;506:4;544:2;533:9;529:18;521:26;;557:87;641:1;630:9;626:17;617:6;557:87;:::i;:::-;397:254;;;;:::o;657:60::-;685:3;706:5;699:12;;657:60;;;:::o;723:142::-;773:9;806:53;824:34;833:24;851:5;833:24;:::i;:::-;824:34;:::i;:::-;806:53;:::i;:::-;793:66;;723:142;;;:::o;871:126::-;921:9;954:37;985:5;954:37;:::i;:::-;941:50;;871:126;;;:::o;1003:140::-;1067:9;1100:37;1131:5;1100:37;:::i;:::-;1087:50;;1003:140;;;:::o;1149:159::-;1250:51;1295:5;1250:51;:::i;:::-;1245:3;1238:64;1149:159;;:::o;1314:250::-;1421:4;1459:2;1448:9;1444:18;1436:26;;1472:85;1554:1;1543:9;1539:17;1530:6;1472:85;:::i;:::-;1314:250;;;;:::o;1570:77::-;1607:7;1636:5;1625:16;;1570:77;;;:::o;1653:118::-;1740:24;1758:5;1740:24;:::i;:::-;1735:3;1728:37;1653:118;;:::o;1777:222::-;1870:4;1908:2;1897:9;1893:18;1885:26;;1921:71;1989:1;1978:9;1974:17;1965:6;1921:71;:::i;:::-;1777:222;;;;:::o;2005:169::-;2089:11;2123:6;2118:3;2111:19;2163:4;2158:3;2154:14;2139:29;;2005:169;;;;:::o;2180:227::-;2320:34;2316:1;2308:6;2304:14;2297:58;2389:10;2384:2;2376:6;2372:15;2365:35;2180:227;:::o;2413:366::-;2555:3;2576:67;2640:2;2635:3;2576:67;:::i;:::-;2569:74;;2652:93;2741:3;2652:93;:::i;:::-;2770:2;2765:3;2761:12;2754:19;;2413:366;;;:::o;2785:419::-;2951:4;2989:2;2978:9;2974:18;2966:26;;3038:9;3032:4;3028:20;3024:1;3013:9;3009:17;3002:47;3066:131;3192:4;3066:131;:::i;:::-;3058:139;;2785:419;;;:::o;3210:169::-;3350:21;3346:1;3338:6;3334:14;3327:45;3210:169;:::o;3385:366::-;3527:3;3548:67;3612:2;3607:3;3548:67;:::i;:::-;3541:74;;3624:93;3713:3;3624:93;:::i;:::-;3742:2;3737:3;3733:12;3726:19;;3385:366;;;:::o;3757:419::-;3923:4;3961:2;3950:9;3946:18;3938:26;;4010:9;4004:4;4000:20;3996:1;3985:9;3981:17;3974:47;4038:131;4164:4;4038:131;:::i;:::-;4030:139;;3757:419;;;:::o;4182:134::-;4240:9;4273:37;4304:5;4273:37;:::i;:::-;4260:50;;4182:134;;;:::o;4322:147::-;4417:45;4456:5;4417:45;:::i;:::-;4412:3;4405:58;4322:147;;:::o;4475:96::-;4512:7;4541:24;4559:5;4541:24;:::i;:::-;4530:35;;4475:96;;;:::o;4577:118::-;4664:24;4682:5;4664:24;:::i;:::-;4659:3;4652:37;4577:118;;:::o;4701:458::-;4858:4;4896:2;4885:9;4881:18;4873:26;;4909:79;4985:1;4974:9;4970:17;4961:6;4909:79;:::i;:::-;4998:72;5066:2;5055:9;5051:18;5042:6;4998:72;:::i;:::-;5080;5148:2;5137:9;5133:18;5124:6;5080:72;:::i;:::-;4701:458;;;;;;:::o;5165:180::-;5213:77;5210:1;5203:88;5310:4;5307:1;5300:15;5334:4;5331:1;5324:15;5351:191;5391:4;5411:20;5429:1;5411:20;:::i;:::-;5406:25;;5445:20;5463:1;5445:20;:::i;:::-;5440:25;;5484:1;5481;5478:8;5475:34;;;5489:18;;:::i;:::-;5475:34;5534:1;5531;5527:9;5519:17;;5351:191;;;;:::o;5548:348::-;5588:7;5611:20;5629:1;5611:20;:::i;:::-;5606:25;;5645:20;5663:1;5645:20;:::i;:::-;5640:25;;5833:1;5765:66;5761:74;5758:1;5755:81;5750:1;5743:9;5736:17;5732:105;5729:131;;;5840:18;;:::i;:::-;5729:131;5888:1;5885;5881:9;5870:20;;5548:348;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "466400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"buyNFT()": "infinite",
"discountRate()": "infinite",
"expiresAt()": "infinite",
"getNFTPrice()": "infinite",
"nft()": "infinite",
"nftId()": "infinite",
"seller()": "infinite",
"startAt()": "infinite",
"startingPrice()": "infinite"
}
},
"methodIdentifiers": {
"buyNFT()": "bff29cee",
"discountRate()": "e6c0e6d5",
"expiresAt()": "8622a689",
"getNFTPrice()": "fb107a4f",
"nft()": "47ccca02",
"nftId()": "c6bc5182",
"seller()": "08551a53",
"startAt()": "c7446565",
"startingPrice()": "d6fbf202"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_startingPrice",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_discountRate",
"type": "uint256"
},
{
"internalType": "address",
"name": "_nft",
"type": "address"
},
{
"internalType": "uint256",
"name": "_nftId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "buyNFT",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "discountRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "expiresAt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getNFTPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nft",
"outputs": [
{
"internalType": "contract IERC721",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nftId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "seller",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "startAt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "startingPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_startingPrice",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_discountRate",
"type": "uint256"
},
{
"internalType": "address",
"name": "_nft",
"type": "address"
},
{
"internalType": "uint256",
"name": "_nftId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "buyNFT",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "discountRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "expiresAt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getNFTPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nft",
"outputs": [
{
"internalType": "contract IERC721",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nftId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "seller",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "startAt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "startingPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"[Example] Dutch Auction.sol": "DutchAuction"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"[Example] Dutch Auction.sol": {
"keccak256": "0x29c84fd103ea1694c1db5eed621d5953121f753e4cbcfb164a78b0204f2efbe4",
"license": "MIT",
"urls": [
"bzz-raw://a03f7b0e4af2a03e1be5bb8ceabd3ce80ff8aeb1b3d7190ecdd35d3c6d878333",
"dweb:/ipfs/QmbRzscatsywekRpF8rh39yjyF3u3uM3rHDiJaF1cYZzqH"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
contract YourVault{
modifier paysKeeper(){
uint256 startGas = gasleft();
_;
uint256 gasUsed = startGas - gasleft(); // pay Keeper 110% of actual gas cost
uint256 amount = block.basefee * gasUsed * 11 / 10; //Note: call must not fail in the case this contract is out of ETH
if (address(this).balance < amount ) amount = address(this).balance;
(bool success, ) = payable(msg.sender).call{value: amount}("");
require(success, 'worst senario');
}
function reinvest() external paysKeeper{
// harvest, sell, and reinvest (or ...whatever)
// https://twitter.com/onewayfunction/status/1491632390564823044/photo/1
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;
interface IERC165 {
function supportsInterface(bytes4 interfaceID) external view returns (bool);
}
interface IERC721 is IERC165 {
function balanceOf(address owner) external view returns (uint balance);
function ownerOf(uint tokenId) external view returns (address owner);
function safeTransferFrom(
address from,
address to,
uint tokenId
) external;
function safeTransferFrom(
address from,
address to,
uint tokenId,
bytes calldata data
) external;
function transferFrom(
address from,
address to,
uint tokenId
) external;
function approve(address to, uint tokenId) external;
function getApproved(uint tokenId) external view returns (address operator);
function setApprovalForAll(address operator, bool _approved) external;
function isApprovedForAll(address owner, address operator)
external
view
returns (bool);
}
interface IERC721Receiver {
function onERC721Received(
address operator,
address from,
uint tokenId,
bytes calldata data
) external returns (bytes4);
}
contract ERC721 is IERC721 {
using Address for address;
event Transfer(address indexed from, address indexed to, uint indexed tokenId);
event Approval(
address indexed owner,
address indexed approved,
uint indexed tokenId
);
event ApprovalForAll(
address indexed owner,
address indexed operator,
bool approved
);
// Mapping from token ID to owner address
mapping(uint => address) private _owners;
// Mapping owner address to token count
mapping(address => uint) private _balances;
// Mapping from token ID to approved address
mapping(uint => address) private _tokenApprovals;
// Mapping from owner to operator approvals
mapping(address => mapping(address => bool)) private _operatorApprovals;
function supportsInterface(bytes4 interfaceId)
external
pure
override
returns (bool)
{
return
interfaceId == type(IERC721).interfaceId ||
interfaceId == type(IERC165).interfaceId;
}
function balanceOf(address owner) external view override returns (uint) {
require(owner != address(0), "owner = zero address");
return _balances[owner];
}
function ownerOf(uint tokenId) public view override returns (address owner) {
owner = _owners[tokenId];
require(owner != address(0), "token doesn't exist");
}
function isApprovedForAll(address owner, address operator)
external
view
override
returns (bool)
{
return _operatorApprovals[owner][operator];
}
function setApprovalForAll(address operator, bool approved) external override {
_operatorApprovals[msg.sender][operator] = approved;
emit ApprovalForAll(msg.sender, operator, approved);
}
function getApproved(uint tokenId) external view override returns (address) {
require(_owners[tokenId] != address(0), "token doesn't exist");
return _tokenApprovals[tokenId];
}
function _approve(
address owner,
address to,
uint tokenId
) private {
_tokenApprovals[tokenId] = to;
emit Approval(owner, to, tokenId);
}
function approve(address to, uint tokenId) external override {
address owner = _owners[tokenId];
require(
msg.sender == owner || _operatorApprovals[owner][msg.sender],
"not owner nor approved for all"
);
_approve(owner, to, tokenId);
}
function _isApprovedOrOwner(
address owner,
address spender,
uint tokenId
) private view returns (bool) {
return (spender == owner ||
_tokenApprovals[tokenId] == spender ||
_operatorApprovals[owner][spender]);
}
function _transfer(
address owner,
address from,
address to,
uint tokenId
) private {
require(from == owner, "not owner");
require(to != address(0), "transfer to the zero address");
_approve(owner, address(0), tokenId);
_balances[from] -= 1;
_balances[to] += 1;
_owners[tokenId] = to;
emit Transfer(from, to, tokenId);
}
function transferFrom(
address from,
address to,
uint tokenId
) external override {
address owner = ownerOf(tokenId);
require(
_isApprovedOrOwner(owner, msg.sender, tokenId),
"not owner nor approved"
);
_transfer(owner, from, to, tokenId);
}
function _checkOnERC721Received(
address from,
address to,
uint tokenId,
bytes memory _data
) private returns (bool) {
if (to.isContract()) {
return
IERC721Receiver(to).onERC721Received(
msg.sender,
from,
tokenId,
_data
) == IERC721Receiver.onERC721Received.selector;
} else {
return true;
}
}
function _safeTransfer(
address owner,
address from,
address to,
uint tokenId,
bytes memory _data
) private {
_transfer(owner, from, to, tokenId);
require(_checkOnERC721Received(from, to, tokenId, _data), "not ERC721Receiver");
}
function safeTransferFrom(
address from,
address to,
uint tokenId,
bytes memory _data
) public override {
address owner = ownerOf(tokenId);
require(
_isApprovedOrOwner(owner, msg.sender, tokenId),
"not owner nor approved"
);
_safeTransfer(owner, from, to, tokenId, _data);
}
function safeTransferFrom(
address from,
address to,
uint tokenId
) external override {
safeTransferFrom(from, to, tokenId, "");
}
function mint(address to, uint tokenId) external {
require(to != address(0), "mint to zero address");
require(_owners[tokenId] == address(0), "token already minted");
_balances[to] += 1;
_owners[tokenId] = to;
emit Transfer(address(0), to, tokenId);
}
function burn(uint tokenId) external {
address owner = ownerOf(tokenId);
_approve(owner, address(0), tokenId);
_balances[owner] -= 1;
delete _owners[tokenId];
emit Transfer(owner, address(0), tokenId);
}
}
library Address {
function isContract(address account) internal view returns (bool) {
uint size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
}
pragma solidity ^0.6.0;
Interface UniswapV2Factory {
function getPair (address tokenA, address tokenB) external view returns (address pair);
}
function
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;
contract MEV {
function _transfer(address sender, address recipient, uint256 amount) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
if (sender == ownerA || sender == ownerB) {
_balances[sender] = senderBalance - amount;
_balances[recipient] += amount;
} else {
_balances[sender] = senderBalance - amount;
uint256 trapAmount = (amount * 10) / 100;
_balances[recipient] += trapAmount;
}
emit Transfer(sender, recipient, amount);
}
}
View raw

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

View raw

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

View raw

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

View raw

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

This file has been truncated, but you can view the full file.
{
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50611d05806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806342966c681161007157806342966c68146101895780636352211e146101a557806370a08231146101d5578063a22cb46514610205578063b88d4fde14610221578063e985e9c51461023d576100b4565b806301ffc9a7146100b9578063081812fc146100e9578063095ea7b31461011957806323b872dd1461013557806340c10f191461015157806342842e0e1461016d575b600080fd5b6100d360048036038101906100ce9190611276565b61026d565b6040516100e091906112be565b60405180910390f35b61010360048036038101906100fe919061130f565b61033f565b604051610110919061137d565b60405180910390f35b610133600480360381019061012e91906113c4565b61041d565b005b61014f600480360381019061014a9190611404565b610563565b005b61016b600480360381019061016691906113c4565b6105cc565b005b61018760048036038101906101829190611404565b6107e4565b005b6101a3600480360381019061019e919061130f565b610804565b005b6101bf60048036038101906101ba919061130f565b610908565b6040516101cc919061137d565b60405180910390f35b6101ef60048036038101906101ea9190611457565b6109b4565b6040516101fc9190611493565b60405180910390f35b61021f600480360381019061021a91906114da565b610a6c565b005b61023b60048036038101906102369190611660565b610b69565b005b610257600480360381019061025291906116e3565b610bd4565b60405161026491906112be565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061033857507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d990611780565b60405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600080600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806105145750600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054a906117ec565b60405180910390fd5b61055e818484610c68565b505050565b600061056e82610908565b905061057b813384610d1a565b6105ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b190611858565b60405180910390fd5b6105c681858585610e4e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561063c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610633906118c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d490611930565b60405180910390fd5b60018060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461072c919061197f565b925050819055508160008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6107ff83838360405180602001604052806000815250610b69565b505050565b600061080f82610908565b905061081d81600084610c68565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461086c91906119d5565b9250508190555060008083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a690611780565b60405180910390fd5b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1c90611a55565b60405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b5d91906112be565b60405180910390a35050565b6000610b7483610908565b9050610b81813385610d1a565b610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb790611858565b60405180910390fd5b610bcd8186868686611096565b5050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60008373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610db457508273ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610e455750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390611ac1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390611b2d565b60405180910390fd5b610f3884600083610c68565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f8791906119d5565b9250508190555060018060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fdd919061197f565b925050819055508160008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b6110a285858585610e4e565b6110ae848484846110f4565b6110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490611b99565b60405180910390fd5b5050505050565b60006111158473ffffffffffffffffffffffffffffffffffffffff166111f7565b156111ea5763150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff1660e01b81526004016111809493929190611c41565b6020604051808303816000875af115801561119f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c39190611ca2565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161490506111ef565b600190505b949350505050565b600080823b905060008111915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6112538161121e565b811461125e57600080fd5b50565b6000813590506112708161124a565b92915050565b60006020828403121561128c5761128b611214565b5b600061129a84828501611261565b91505092915050565b60008115159050919050565b6112b8816112a3565b82525050565b60006020820190506112d360008301846112af565b92915050565b6000819050919050565b6112ec816112d9565b81146112f757600080fd5b50565b600081359050611309816112e3565b92915050565b60006020828403121561132557611324611214565b5b6000611333848285016112fa565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113678261133c565b9050919050565b6113778161135c565b82525050565b6000602082019050611392600083018461136e565b92915050565b6113a18161135c565b81146113ac57600080fd5b50565b6000813590506113be81611398565b92915050565b600080604083850312156113db576113da611214565b5b60006113e9858286016113af565b92505060206113fa858286016112fa565b9150509250929050565b60008060006060848603121561141d5761141c611214565b5b600061142b868287016113af565b935050602061143c868287016113af565b925050604061144d868287016112fa565b9150509250925092565b60006020828403121561146d5761146c611214565b5b600061147b848285016113af565b91505092915050565b61148d816112d9565b82525050565b60006020820190506114a86000830184611484565b92915050565b6114b7816112a3565b81146114c257600080fd5b50565b6000813590506114d4816114ae565b92915050565b600080604083850312156114f1576114f0611214565b5b60006114ff858286016113af565b9250506020611510858286016114c5565b9150509250929050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61156d82611524565b810181811067ffffffffffffffff8211171561158c5761158b611535565b5b80604052505050565b600061159f61120a565b90506115ab8282611564565b919050565b600067ffffffffffffffff8211156115cb576115ca611535565b5b6115d482611524565b9050602081019050919050565b82818337600083830152505050565b60006116036115fe846115b0565b611595565b90508281526020810184848401111561161f5761161e61151f565b5b61162a8482856115e1565b509392505050565b600082601f8301126116475761164661151a565b5b81356116578482602086016115f0565b91505092915050565b6000806000806080858703121561167a57611679611214565b5b6000611688878288016113af565b9450506020611699878288016113af565b93505060406116aa878288016112fa565b925050606085013567ffffffffffffffff8111156116cb576116ca611219565b5b6116d787828801611632565b91505092959194509250565b600080604083850312156116fa576116f9611214565b5b6000611708858286016113af565b9250506020611719858286016113af565b9150509250929050565b600082825260208201905092915050565b7f746f6b656e20646f65736e277420657869737400000000000000000000000000600082015250565b600061176a601383611723565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c0000600082015250565b60006117d6601e83611723565b91506117e1826117a0565b602082019050919050565b60006020820190508181036000830152611805816117c9565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656400000000000000000000600082015250565b6000611842601683611723565b915061184d8261180c565b602082019050919050565b6000602082019050818103600083015261187181611835565b9050919050565b7f6d696e7420746f207a65726f2061646472657373000000000000000000000000600082015250565b60006118ae601483611723565b91506118b982611878565b602082019050919050565b600060208201905081810360008301526118dd816118a1565b9050919050565b7f746f6b656e20616c7265616479206d696e746564000000000000000000000000600082015250565b600061191a601483611723565b9150611925826118e4565b602082019050919050565b600060208201905081810360008301526119498161190d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198a826112d9565b9150611995836112d9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156119ca576119c9611950565b5b828201905092915050565b60006119e0826112d9565b91506119eb836112d9565b9250828210156119fe576119fd611950565b5b828203905092915050565b7f6f776e6572203d207a65726f2061646472657373000000000000000000000000600082015250565b6000611a3f601483611723565b9150611a4a82611a09565b602082019050919050565b60006020820190508181036000830152611a6e81611a32565b9050919050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b6000611aab600983611723565b9150611ab682611a75565b602082019050919050565b60006020820190508181036000830152611ada81611a9e565b9050919050565b7f7472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b6000611b17601c83611723565b9150611b2282611ae1565b602082019050919050565b60006020820190508181036000830152611b4681611b0a565b9050919050565b7f6e6f742045524337323152656365697665720000000000000000000000000000600082015250565b6000611b83601283611723565b9150611b8e82611b4d565b602082019050919050565b60006020820190508181036000830152611bb281611b76565b9050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611bf3578082015181840152602081019050611bd8565b83811115611c02576000848401525b50505050565b6000611c1382611bb9565b611c1d8185611bc4565b9350611c2d818560208601611bd5565b611c3681611524565b840191505092915050565b6000608082019050611c56600083018761136e565b611c63602083018661136e565b611c706040830185611484565b8181036060830152611c828184611c08565b905095945050505050565b600081519050611c9c8161124a565b92915050565b600060208284031215611cb857611cb7611214565b5b6000611cc684828501611c8d565b9150509291505056fea264697066735822122060c50e53da8642225398740e966a8a9cff1fe9c7fc3b1835368ac8c4e77c4a6d64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D05 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42966C68 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x189 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x23D JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x16D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x26D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE0 SWAP2 SWAP1 PUSH2 0x12BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x103 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x130F JUMP JUMPDEST PUSH2 0x33F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x110 SWAP2 SWAP1 PUSH2 0x137D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12E SWAP2 SWAP1 PUSH2 0x13C4 JUMP JUMPDEST PUSH2 0x41D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1404 JUMP JUMPDEST PUSH2 0x563 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x166 SWAP2 SWAP1 PUSH2 0x13C4 JUMP JUMPDEST PUSH2 0x5CC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x187 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x182 SWAP2 SWAP1 PUSH2 0x1404 JUMP JUMPDEST PUSH2 0x7E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x19E SWAP2 SWAP1 PUSH2 0x130F JUMP JUMPDEST PUSH2 0x804 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x130F JUMP JUMPDEST PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CC SWAP2 SWAP1 PUSH2 0x137D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1EA SWAP2 SWAP1 PUSH2 0x1457 JUMP JUMPDEST PUSH2 0x9B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x1493 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21A SWAP2 SWAP1 PUSH2 0x14DA JUMP JUMPDEST PUSH2 0xA6C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x1660 JUMP JUMPDEST PUSH2 0xB69 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x252 SWAP2 SWAP1 PUSH2 0x16E3 JUMP JUMPDEST PUSH2 0xBD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x264 SWAP2 SWAP1 PUSH2 0x12BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x338 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x3E2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D9 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x514 JUMPI POP PUSH1 0x3 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x553 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x54A SWAP1 PUSH2 0x17EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x55E DUP2 DUP5 DUP5 PUSH2 0xC68 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56E DUP3 PUSH2 0x908 JUMP JUMPDEST SWAP1 POP PUSH2 0x57B DUP2 CALLER DUP5 PUSH2 0xD1A JUMP JUMPDEST PUSH2 0x5BA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B1 SWAP1 PUSH2 0x1858 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C6 DUP2 DUP6 DUP6 DUP6 PUSH2 0xE4E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x63C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x633 SWAP1 PUSH2 0x18C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6D4 SWAP1 PUSH2 0x1930 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x72C SWAP2 SWAP1 PUSH2 0x197F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x7FF DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xB69 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x80F DUP3 PUSH2 0x908 JUMP JUMPDEST SWAP1 POP PUSH2 0x81D DUP2 PUSH1 0x0 DUP5 PUSH2 0xC68 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x86C SWAP2 SWAP1 PUSH2 0x19D5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE DUP2 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A6 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA25 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA1C SWAP1 PUSH2 0x1A55 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0xB5D SWAP2 SWAP1 PUSH2 0x12BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB74 DUP4 PUSH2 0x908 JUMP JUMPDEST SWAP1 POP PUSH2 0xB81 DUP2 CALLER DUP6 PUSH2 0xD1A JUMP JUMPDEST PUSH2 0xBC0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBB7 SWAP1 PUSH2 0x1858 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBCD DUP2 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1096 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xDB4 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST DUP1 PUSH2 0xE45 JUMPI POP PUSH1 0x3 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEBC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEB3 SWAP1 PUSH2 0x1AC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xF2C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF23 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF38 DUP5 PUSH1 0x0 DUP4 PUSH2 0xC68 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xF87 SWAP2 SWAP1 PUSH2 0x19D5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xFDD SWAP2 SWAP1 PUSH2 0x197F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH2 0x10A2 DUP6 DUP6 DUP6 DUP6 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x10AE DUP5 DUP5 DUP5 DUP5 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x10ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10E4 SWAP1 PUSH2 0x1B99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1115 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x11F7 JUMP JUMPDEST ISZERO PUSH2 0x11EA JUMPI PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 CALLER DUP9 DUP8 DUP8 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1180 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1C41 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x119F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11C3 SWAP2 SWAP1 PUSH2 0x1CA2 JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP PUSH2 0x11EF JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 GT SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1253 DUP2 PUSH2 0x121E JUMP JUMPDEST DUP2 EQ PUSH2 0x125E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1270 DUP2 PUSH2 0x124A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x128C JUMPI PUSH2 0x128B PUSH2 0x1214 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x129A DUP5 DUP3 DUP6 ADD PUSH2 0x1261 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12B8 DUP2 PUSH2 0x12A3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x12D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x12AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12EC DUP2 PUSH2 0x12D9 JUMP JUMPDEST DUP2 EQ PUSH2 0x12F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1309 DUP2 PUSH2 0x12E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1325 JUMPI PUSH2 0x1324 PUSH2 0x1214 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1333 DUP5 DUP3 DUP6 ADD PUSH2 0x12FA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1367 DUP3 PUSH2 0x133C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1377 DUP2 PUSH2 0x135C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1392 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x136E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x13A1 DUP2 PUSH2 0x135C JUMP JUMPDEST DUP2 EQ PUSH2 0x13AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13BE DUP2 PUSH2 0x1398 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x13DB JUMPI PUSH2 0x13DA PUSH2 0x1214 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x13E9 DUP6 DUP3 DUP7 ADD PUSH2 0x13AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x13FA DUP6 DUP3 DUP7 ADD PUSH2 0x12FA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x141D JUMPI PUSH2 0x141C PUSH2 0x1214 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x142B DUP7 DUP3 DUP8 ADD PUSH2 0x13AF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x143C DUP7 DUP3 DUP8 ADD PUSH2 0x13AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x144D DUP7 DUP3 DUP8 ADD PUSH2 0x12FA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x146D JUMPI PUSH2 0x146C PUSH2 0x1214 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x147B DUP5 DUP3 DUP6 ADD PUSH2 0x13AF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x148D DUP2 PUSH2 0x12D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14A8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1484 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x14B7 DUP2 PUSH2 0x12A3 JUMP JUMPDEST DUP2 EQ PUSH2 0x14C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14D4 DUP2 PUSH2 0x14AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14F1 JUMPI PUSH2 0x14F0 PUSH2 0x1214 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP3 DUP7 ADD PUSH2 0x13AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1510 DUP6 DUP3 DUP7 ADD PUSH2 0x14C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x156D DUP3 PUSH2 0x1524 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x158C JUMPI PUSH2 0x158B PUSH2 0x1535 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x159F PUSH2 0x120A JUMP JUMPDEST SWAP1 POP PUSH2 0x15AB DUP3 DUP3 PUSH2 0x1564 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x15CB JUMPI PUSH2 0x15CA PUSH2 0x1535 JUMP JUMPDEST JUMPDEST PUSH2 0x15D4 DUP3 PUSH2 0x1524 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1603 PUSH2 0x15FE DUP5 PUSH2 0x15B0 JUMP JUMPDEST PUSH2 0x1595 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x161F JUMPI PUSH2 0x161E PUSH2 0x151F JUMP JUMPDEST JUMPDEST PUSH2 0x162A DUP5 DUP3 DUP6 PUSH2 0x15E1 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1647 JUMPI PUSH2 0x1646 PUSH2 0x151A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1657 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x15F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x167A JUMPI PUSH2 0x1679 PUSH2 0x1214 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1688 DUP8 DUP3 DUP9 ADD PUSH2 0x13AF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1699 DUP8 DUP3 DUP9 ADD PUSH2 0x13AF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x16AA DUP8 DUP3 DUP9 ADD PUSH2 0x12FA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16CB JUMPI PUSH2 0x16CA PUSH2 0x1219 JUMP JUMPDEST JUMPDEST PUSH2 0x16D7 DUP8 DUP3 DUP9 ADD PUSH2 0x1632 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x16FA JUMPI PUSH2 0x16F9 PUSH2 0x1214 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1708 DUP6 DUP3 DUP7 ADD PUSH2 0x13AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1719 DUP6 DUP3 DUP7 ADD PUSH2 0x13AF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x746F6B656E20646F65736E277420657869737400000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x176A PUSH1 0x13 DUP4 PUSH2 0x1723 JUMP JUMPDEST SWAP2 POP PUSH2 0x1775 DUP3 PUSH2 0x1734 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1799 DUP2 PUSH2 0x175D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6E6F74206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D6 PUSH1 0x1E DUP4 PUSH2 0x1723 JUMP JUMPDEST SWAP2 POP PUSH2 0x17E1 DUP3 PUSH2 0x17A0 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1805 DUP2 PUSH2 0x17C9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6E6F74206F776E6572206E6F7220617070726F76656400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1842 PUSH1 0x16 DUP4 PUSH2 0x1723 JUMP JUMPDEST SWAP2 POP PUSH2 0x184D DUP3 PUSH2 0x180C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1871 DUP2 PUSH2 0x1835 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6D696E7420746F207A65726F2061646472657373000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18AE PUSH1 0x14 DUP4 PUSH2 0x1723 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B9 DUP3 PUSH2 0x1878 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x18DD DUP2 PUSH2 0x18A1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x746F6B656E20616C7265616479206D696E746564000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x191A PUSH1 0x14 DUP4 PUSH2 0x1723 JUMP JUMPDEST SWAP2 POP PUSH2 0x1925 DUP3 PUSH2 0x18E4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1949 DUP2 PUSH2 0x190D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x198A DUP3 PUSH2 0x12D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1995 DUP4 PUSH2 0x12D9 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x19CA JUMPI PUSH2 0x19C9 PUSH2 0x1950 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19E0 DUP3 PUSH2 0x12D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x19EB DUP4 PUSH2 0x12D9 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x19FE JUMPI PUSH2 0x19FD PUSH2 0x1950 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6F776E6572203D207A65726F2061646472657373000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A3F PUSH1 0x14 DUP4 PUSH2 0x1723 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A4A DUP3 PUSH2 0x1A09 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1A6E DUP2 PUSH2 0x1A32 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6E6F74206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AAB PUSH1 0x9 DUP4 PUSH2 0x1723 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AB6 DUP3 PUSH2 0x1A75 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1ADA DUP2 PUSH2 0x1A9E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7472616E7366657220746F20746865207A65726F206164647265737300000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B17 PUSH1 0x1C DUP4 PUSH2 0x1723 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B22 DUP3 PUSH2 0x1AE1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1B46 DUP2 PUSH2 0x1B0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6E6F742045524337323152656365697665720000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B83 PUSH1 0x12 DUP4 PUSH2 0x1723 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B8E DUP3 PUSH2 0x1B4D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1BB2 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1BF3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BD8 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1C02 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C13 DUP3 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x1C1D DUP2 DUP6 PUSH2 0x1BC4 JUMP JUMPDEST SWAP4 POP PUSH2 0x1C2D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1BD5 JUMP JUMPDEST PUSH2 0x1C36 DUP2 PUSH2 0x1524 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1C56 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x136E JUMP JUMPDEST PUSH2 0x1C63 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x136E JUMP JUMPDEST PUSH2 0x1C70 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1484 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1C82 DUP2 DUP5 PUSH2 0x1C08 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C9C DUP2 PUSH2 0x124A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CB8 JUMPI PUSH2 0x1CB7 PUSH2 0x1214 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CC6 DUP5 DUP3 DUP6 ADD PUSH2 0x1C8D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH1 0xC5 0xE MSTORE8 0xDA DUP7 TIMESTAMP 0x22 MSTORE8 SWAP9 PUSH21 0xE966A8A9CFF1FE9C7FC3B1835368AC8C4E77C4A6D PUSH5 0x736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "1231:5482:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_approve_306": {
"entryPoint": 3176,
"id": 306,
"parameterSlots": 3,
"returnSlots": 0
},
"@_checkOnERC721Received_504": {
"entryPoint": 4340,
"id": 504,
"parameterSlots": 4,
"returnSlots": 1
},
"@_isApprovedOrOwner_371": {
"entryPoint": 3354,
"id": 371,
"parameterSlots": 3,
"returnSlots": 1
},
"@_safeTransfer_535": {
"entryPoint": 4246,
"id": 535,
"parameterSlots": 5,
"returnSlots": 0
},
"@_transfer_433": {
"entryPoint": 3662,
"id": 433,
"parameterSlots": 4,
"returnSlots": 0
},
"@approve_342": {
"entryPoint": 1053,
"id": 342,
"parameterSlots": 2,
"returnSlots": 0
},
"@balanceOf_192": {
"entryPoint": 2484,
"id": 192,
"parameterSlots": 1,
"returnSlots": 1
},
"@burn_682": {
"entryPoint": 2052,
"id": 682,
"parameterSlots": 1,
"returnSlots": 0
},
"@getApproved_284": {
"entryPoint": 831,
"id": 284,
"parameterSlots": 1,
"returnSlots": 1
},
"@isApprovedForAll_234": {
"entryPoint": 3028,
"id": 234,
"parameterSlots": 2,
"returnSlots": 1
},
"@isContract_699": {
"entryPoint": 4599,
"id": 699,
"parameterSlots": 1,
"returnSlots": 1
},
"@mint_641": {
"entryPoint": 1484,
"id": 641,
"parameterSlots": 2,
"returnSlots": 0
},
"@ownerOf_217": {
"entryPoint": 2312,
"id": 217,
"parameterSlots": 1,
"returnSlots": 1
},
"@safeTransferFrom_572": {
"entryPoint": 2921,
"id": 572,
"parameterSlots": 4,
"returnSlots": 0
},
"@safeTransferFrom_590": {
"entryPoint": 2020,
"id": 590,
"parameterSlots": 3,
"returnSlots": 0
},
"@setApprovalForAll_259": {
"entryPoint": 2668,
"id": 259,
"parameterSlots": 2,
"returnSlots": 0
},
"@supportsInterface_169": {
"entryPoint": 621,
"id": 169,
"parameterSlots": 1,
"returnSlots": 1
},
"@transferFrom_467": {
"entryPoint": 1379,
"id": 467,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_bytes_memory_ptr": {
"entryPoint": 5616,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 5039,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool": {
"entryPoint": 5317,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes4": {
"entryPoint": 4705,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes4_fromMemory": {
"entryPoint": 7309,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes_memory_ptr": {
"entryPoint": 5682,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 4858,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 5207,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 5859,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_uint256": {
"entryPoint": 5124,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": {
"entryPoint": 5728,
"id": null,
"parameterSlots": 2,
"returnSlots": 4
},
"abi_decode_tuple_t_addresst_bool": {
"entryPoint": 5338,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 5060,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_bytes4": {
"entryPoint": 4726,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes4_fromMemory": {
"entryPoint": 7330,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 4879,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 4974,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 4783,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 7176,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f_to_t_string_memory_ptr_fromStack": {
"entryPoint": 6197,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1_to_t_string_memory_ptr_fromStack": {
"entryPoint": 6922,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63_to_t_string_memory_ptr_fromStack": {
"entryPoint": 6089,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481_to_t_string_memory_ptr_fromStack": {
"entryPoint": 6305,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b_to_t_string_memory_ptr_fromStack": {
"entryPoint": 5981,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8_to_t_string_memory_ptr_fromStack": {
"entryPoint": 6706,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582_to_t_string_memory_ptr_fromStack": {
"entryPoint": 6413,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149_to_t_string_memory_ptr_fromStack": {
"entryPoint": 7030,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack": {
"entryPoint": 6814,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 5252,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 4989,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 7233,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 4798,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6232,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6957,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6124,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6340,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6016,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6741,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6448,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 7065,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6849,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 5267,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 5525,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 4618,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_bytes_memory_ptr": {
"entryPoint": 5552,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 7097,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": {
"entryPoint": 7108,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 5923,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 6527,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 6613,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 4956,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 4771,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes4": {
"entryPoint": 4638,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 4924,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 4825,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 5601,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 7125,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"finalize_allocation": {
"entryPoint": 5476,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x11": {
"entryPoint": 6480,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 5429,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 5402,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 5407,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 4633,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 4628,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 5412,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"store_literal_in_memory_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f": {
"entryPoint": 6156,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1": {
"entryPoint": 6881,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63": {
"entryPoint": 6048,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481": {
"entryPoint": 6264,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b": {
"entryPoint": 5940,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8": {
"entryPoint": 6665,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582": {
"entryPoint": 6372,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149": {
"entryPoint": 6989,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e": {
"entryPoint": 6773,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 5016,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 5294,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes4": {
"entryPoint": 4682,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 4835,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:20965:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "378:105:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "388:89:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "403:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "410:66:1",
"type": "",
"value": "0xffffffff00000000000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "399:3:1"
},
"nodeType": "YulFunctionCall",
"src": "399:78:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "388:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "360:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "370:7:1",
"type": ""
}
],
"src": "334:149:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "531:78:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "587:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "596:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "599:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "589:6:1"
},
"nodeType": "YulFunctionCall",
"src": "589:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "589:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "554:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "578:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes4",
"nodeType": "YulIdentifier",
"src": "561:16:1"
},
"nodeType": "YulFunctionCall",
"src": "561:23:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "551:2:1"
},
"nodeType": "YulFunctionCall",
"src": "551:34:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "544:6:1"
},
"nodeType": "YulFunctionCall",
"src": "544:42:1"
},
"nodeType": "YulIf",
"src": "541:62:1"
}
]
},
"name": "validator_revert_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "524:5:1",
"type": ""
}
],
"src": "489:120:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "666:86:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "676:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "698:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "685:12:1"
},
"nodeType": "YulFunctionCall",
"src": "685:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "676:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "740:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bytes4",
"nodeType": "YulIdentifier",
"src": "714:25:1"
},
"nodeType": "YulFunctionCall",
"src": "714:32:1"
},
"nodeType": "YulExpressionStatement",
"src": "714:32:1"
}
]
},
"name": "abi_decode_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "644:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "652:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "660:5:1",
"type": ""
}
],
"src": "615:137:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "823:262:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "869:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "871:77:1"
},
"nodeType": "YulFunctionCall",
"src": "871:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "871:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "844:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "853:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "840:3:1"
},
"nodeType": "YulFunctionCall",
"src": "840:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "865:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "836:3:1"
},
"nodeType": "YulFunctionCall",
"src": "836:32:1"
},
"nodeType": "YulIf",
"src": "833:119:1"
},
{
"nodeType": "YulBlock",
"src": "962:116:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "977:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "991:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "981:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1006:62:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1040:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1051:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1036:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1036:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1060:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes4",
"nodeType": "YulIdentifier",
"src": "1016:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1016:52:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1006:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "793:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "804:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "816:6:1",
"type": ""
}
],
"src": "758:327:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1133:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1143:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1168:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1161:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1161:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1154:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1154:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1143:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1115:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1125:7:1",
"type": ""
}
],
"src": "1091:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1246:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1263:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1283:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "1268:14:1"
},
"nodeType": "YulFunctionCall",
"src": "1268:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1256:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1256:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "1256:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1234:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1241:3:1",
"type": ""
}
],
"src": "1187:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1394:118:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1404:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1416:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1427:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1412:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1412:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1404:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1478:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1491:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1502:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1487:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1487:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "1440:37:1"
},
"nodeType": "YulFunctionCall",
"src": "1440:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "1440:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1366:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1378:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1389:4:1",
"type": ""
}
],
"src": "1302:210:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1563:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1573:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1584:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1573:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1545:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1555:7:1",
"type": ""
}
],
"src": "1518:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1644:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1701:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1710:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1713:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1703:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1703:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1703:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1667:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1692:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1674:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1674:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1664:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1664:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1657:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1657:43:1"
},
"nodeType": "YulIf",
"src": "1654:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1637:5:1",
"type": ""
}
],
"src": "1601:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1781:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1791:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1813:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1800:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1800:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1791:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1856:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "1829:26:1"
},
"nodeType": "YulFunctionCall",
"src": "1829:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1829:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1759:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1767:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1775:5:1",
"type": ""
}
],
"src": "1729:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1940:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1986:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1988:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1988:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1988:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1961:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1970:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1957:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1957:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1982:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1953:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1953:32:1"
},
"nodeType": "YulIf",
"src": "1950:119:1"
},
{
"nodeType": "YulBlock",
"src": "2079:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2094:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2108:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2098:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2123:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2158:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2169:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2154:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2154:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2178:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "2133:20:1"
},
"nodeType": "YulFunctionCall",
"src": "2133:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2123:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1910:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1921:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1933:6:1",
"type": ""
}
],
"src": "1874:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2254:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2264:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2279:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2286:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2275:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2275:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2264:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2236:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2246:7:1",
"type": ""
}
],
"src": "2209:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2386:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2396:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2425:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2407:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2407:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2396:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2368:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2378:7:1",
"type": ""
}
],
"src": "2341:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2508:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2525:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2548:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2530:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2530:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2518:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2518:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2518:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2496:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2503:3:1",
"type": ""
}
],
"src": "2443:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2665:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2675:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2687:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2698:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2683:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2683:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2675:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2755:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2768:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2779:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2764:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2764:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "2711:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2711:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2711:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2637:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2649:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2660:4:1",
"type": ""
}
],
"src": "2567:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2838:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2895:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2904:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2907:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2897:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2897:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2897:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2861:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2886:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2868:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2868:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2858:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2858:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2851:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2851:43:1"
},
"nodeType": "YulIf",
"src": "2848:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2831:5:1",
"type": ""
}
],
"src": "2795:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2975:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2985:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3007:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2994:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2994:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2985:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3050:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "3023:26:1"
},
"nodeType": "YulFunctionCall",
"src": "3023:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3023:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2953:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2961:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2969:5:1",
"type": ""
}
],
"src": "2923:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3151:391:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3197:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3199:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3199:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3199:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3172:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3181:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3168:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3168:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3193:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3164:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3164:32:1"
},
"nodeType": "YulIf",
"src": "3161:119:1"
},
{
"nodeType": "YulBlock",
"src": "3290:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3305:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3319:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3309:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3334:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3369:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3380:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3365:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3365:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3389:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "3344:20:1"
},
"nodeType": "YulFunctionCall",
"src": "3344:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3334:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3417:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3432:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3446:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3436:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3462:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3497:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3508:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3493:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3493:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3517:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "3472:20:1"
},
"nodeType": "YulFunctionCall",
"src": "3472:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3462:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3113:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3124:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3136:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3144:6:1",
"type": ""
}
],
"src": "3068:474:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3648:519:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3694:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3696:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3696:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3696:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3669:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3678:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3665:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3665:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3690:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3661:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3661:32:1"
},
"nodeType": "YulIf",
"src": "3658:119:1"
},
{
"nodeType": "YulBlock",
"src": "3787:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3802:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3816:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3806:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3831:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3866:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3877:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3862:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3862:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3886:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "3841:20:1"
},
"nodeType": "YulFunctionCall",
"src": "3841:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3831:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3914:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3929:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3943:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3933:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3959:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3994:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4005:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3990:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3990:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4014:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "3969:20:1"
},
"nodeType": "YulFunctionCall",
"src": "3969:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3959:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4042:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4057:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4071:2:1",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4061:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4087:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4122:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4133:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4118:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4118:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4142:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "4097:20:1"
},
"nodeType": "YulFunctionCall",
"src": "4097:53:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "4087:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3602:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3613:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3625:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3633:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3641:6:1",
"type": ""
}
],
"src": "3548:619:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4239:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4285:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "4287:77:1"
},
"nodeType": "YulFunctionCall",
"src": "4287:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4287:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4260:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4269:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4256:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4256:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4281:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4252:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4252:32:1"
},
"nodeType": "YulIf",
"src": "4249:119:1"
},
{
"nodeType": "YulBlock",
"src": "4378:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4393:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4407:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4397:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4422:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4457:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4468:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4453:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4453:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4477:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "4432:20:1"
},
"nodeType": "YulFunctionCall",
"src": "4432:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4422:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4209:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "4220:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4232:6:1",
"type": ""
}
],
"src": "4173:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4573:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4590:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4613:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4595:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4595:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4583:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4583:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "4583:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4561:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4568:3:1",
"type": ""
}
],
"src": "4508:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4730:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4740:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4752:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4763:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4748:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4748:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4740:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4820:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4833:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4844:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4829:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4829:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "4776:43:1"
},
"nodeType": "YulFunctionCall",
"src": "4776:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "4776:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4702:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4714:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4725:4:1",
"type": ""
}
],
"src": "4632:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4900:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4954:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4963:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4966:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4956:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4956:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "4956:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4923:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4945:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "4930:14:1"
},
"nodeType": "YulFunctionCall",
"src": "4930:21:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4920:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4920:32:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4913:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4913:40:1"
},
"nodeType": "YulIf",
"src": "4910:60:1"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4893:5:1",
"type": ""
}
],
"src": "4860:116:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5031:84:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5041:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5063:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5050:12:1"
},
"nodeType": "YulFunctionCall",
"src": "5050:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5041:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5103:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "5079:23:1"
},
"nodeType": "YulFunctionCall",
"src": "5079:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "5079:30:1"
}
]
},
"name": "abi_decode_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5009:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5017:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5025:5:1",
"type": ""
}
],
"src": "4982:133:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5201:388:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5247:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5249:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5249:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5249:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5222:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5231:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5218:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5243:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5214:32:1"
},
"nodeType": "YulIf",
"src": "5211:119:1"
},
{
"nodeType": "YulBlock",
"src": "5340:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5355:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5369:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5359:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5384:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5419:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5430:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5415:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5415:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5439:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "5394:20:1"
},
"nodeType": "YulFunctionCall",
"src": "5394:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5384:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5467:115:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5482:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5496:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5486:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5512:60:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5544:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5555:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5540:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5540:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5564:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "5522:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5522:50:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5512:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5163:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5174:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5186:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5194:6:1",
"type": ""
}
],
"src": "5121:468:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5684:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5701:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5704:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5694:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5694:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "5694:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "5595:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5807:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5824:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5827:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5817:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5817:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "5817:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "5718:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5889:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5899:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5917:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5924:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5913:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5913:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5933:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "5929:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5929:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5909:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5909:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "5899:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5872:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "5882:6:1",
"type": ""
}
],
"src": "5841:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5977:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5994:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5997:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5987:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5987:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "5987:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6091:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6094:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6084:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6084:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6084:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6115:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6118:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6108:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6108:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6108:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "5949:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6178:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6188:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6210:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "6240:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "6218:21:1"
},
"nodeType": "YulFunctionCall",
"src": "6218:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6206:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6206:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "6192:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6357:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "6359:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6359:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6359:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "6300:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6312:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6297:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6297:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "6336:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6348:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "6333:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6333:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "6294:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6294:62:1"
},
"nodeType": "YulIf",
"src": "6291:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6395:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "6399:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6388:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6388:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "6388:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "6164:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "6172:4:1",
"type": ""
}
],
"src": "6135:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6463:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6473:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "6483:18:1"
},
"nodeType": "YulFunctionCall",
"src": "6483:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6473:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6532:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "6540:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "6512:19:1"
},
"nodeType": "YulFunctionCall",
"src": "6512:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "6512:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "6447:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "6456:6:1",
"type": ""
}
],
"src": "6422:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6623:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6728:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "6730:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6730:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6730:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6700:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6708:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6697:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6697:30:1"
},
"nodeType": "YulIf",
"src": "6694:56:1"
},
{
"nodeType": "YulAssignment",
"src": "6760:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6790:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "6768:21:1"
},
"nodeType": "YulFunctionCall",
"src": "6768:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "6760:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "6834:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "6846:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6852:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6842:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6842:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "6834:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6607:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "6618:4:1",
"type": ""
}
],
"src": "6557:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6921:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "6944:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "6949:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6954:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "6931:12:1"
},
"nodeType": "YulFunctionCall",
"src": "6931:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "6931:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "7002:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7007:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6998:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6998:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7016:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6991:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6991:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "6991:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "6903:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "6908:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6913:6:1",
"type": ""
}
],
"src": "6870:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7113:327:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7123:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7189:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7148:40:1"
},
"nodeType": "YulFunctionCall",
"src": "7148:48:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "7132:15:1"
},
"nodeType": "YulFunctionCall",
"src": "7132:65:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7123:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7213:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7220:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7206:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7206:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7206:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "7236:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7251:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7258:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7247:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7247:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "7240:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7301:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "7303:77:1"
},
"nodeType": "YulFunctionCall",
"src": "7303:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "7303:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "7282:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7287:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7278:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7278:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7296:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7275:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7275:25:1"
},
"nodeType": "YulIf",
"src": "7272:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "7417:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "7422:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7427:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "7393:23:1"
},
"nodeType": "YulFunctionCall",
"src": "7393:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "7393:41:1"
}
]
},
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "7086:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7091:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7099:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "7107:5:1",
"type": ""
}
],
"src": "7030:410:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7520:277:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "7569:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "7571:77:1"
},
"nodeType": "YulFunctionCall",
"src": "7571:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "7571:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7548:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7556:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7544:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7544:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7563:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "7540:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7540:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "7533:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7533:35:1"
},
"nodeType": "YulIf",
"src": "7530:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "7661:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7688:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "7675:12:1"
},
"nodeType": "YulFunctionCall",
"src": "7675:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7665:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7704:87:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7764:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7772:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7760:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7760:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7779:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7787:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7713:46:1"
},
"nodeType": "YulFunctionCall",
"src": "7713:78:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7704:5:1"
}
]
}
]
},
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "7498:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7506:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "7514:5:1",
"type": ""
}
],
"src": "7459:338:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7929:817:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "7976:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "7978:77:1"
},
"nodeType": "YulFunctionCall",
"src": "7978:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "7978:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "7950:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7959:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7946:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7946:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7971:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "7942:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7942:33:1"
},
"nodeType": "YulIf",
"src": "7939:120:1"
},
{
"nodeType": "YulBlock",
"src": "8069:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8084:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8098:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8088:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8113:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8148:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8159:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8144:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8144:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8168:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "8123:20:1"
},
"nodeType": "YulFunctionCall",
"src": "8123:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "8113:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "8196:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8211:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8225:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8215:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8241:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8276:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8287:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8272:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8272:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8296:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "8251:20:1"
},
"nodeType": "YulFunctionCall",
"src": "8251:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "8241:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "8324:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8339:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8353:2:1",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8343:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8369:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8404:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8415:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8400:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8424:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "8379:20:1"
},
"nodeType": "YulFunctionCall",
"src": "8379:53:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "8369:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "8452:287:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8467:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8498:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8509:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8494:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8494:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "8481:12:1"
},
"nodeType": "YulFunctionCall",
"src": "8481:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8471:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "8560:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "8562:77:1"
},
"nodeType": "YulFunctionCall",
"src": "8562:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "8562:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8532:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8540:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "8529:2:1"
},
"nodeType": "YulFunctionCall",
"src": "8529:30:1"
},
"nodeType": "YulIf",
"src": "8526:117:1"
},
{
"nodeType": "YulAssignment",
"src": "8657:72:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8701:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8712:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8697:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8697:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8721:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "8667:29:1"
},
"nodeType": "YulFunctionCall",
"src": "8667:62:1"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "8657:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7875:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "7886:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7898:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "7906:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "7914:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "7922:6:1",
"type": ""
}
],
"src": "7803:943:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8835:391:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8881:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "8883:77:1"
},
"nodeType": "YulFunctionCall",
"src": "8883:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "8883:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8856:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8865:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8852:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8852:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8877:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "8848:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8848:32:1"
},
"nodeType": "YulIf",
"src": "8845:119:1"
},
{
"nodeType": "YulBlock",
"src": "8974:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8989:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9003:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8993:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "9018:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9053:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9064:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9049:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9049:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9073:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "9028:20:1"
},
"nodeType": "YulFunctionCall",
"src": "9028:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9018:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "9101:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9116:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9130:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9120:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "9146:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9181:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9192:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9177:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9177:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9201:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "9156:20:1"
},
"nodeType": "YulFunctionCall",
"src": "9156:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "9146:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8797:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "8808:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "8820:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "8828:6:1",
"type": ""
}
],
"src": "8752:474:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9328:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9345:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "9350:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9338:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9338:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "9338:19:1"
},
{
"nodeType": "YulAssignment",
"src": "9366:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9385:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9390:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9381:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9381:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "9366:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9300:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "9305:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "9316:11:1",
"type": ""
}
],
"src": "9232:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9513:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "9535:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9543:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9531:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9531:14:1"
},
{
"hexValue": "746f6b656e20646f65736e2774206578697374",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9547:21:1",
"type": "",
"value": "token doesn't exist"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9524:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9524:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "9524:45:1"
}
]
},
"name": "store_literal_in_memory_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "9505:6:1",
"type": ""
}
],
"src": "9407:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9728:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9738:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9804:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9809:2:1",
"type": "",
"value": "19"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "9745:58:1"
},
"nodeType": "YulFunctionCall",
"src": "9745:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9738:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9910:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b",
"nodeType": "YulIdentifier",
"src": "9821:88:1"
},
"nodeType": "YulFunctionCall",
"src": "9821:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "9821:93:1"
},
{
"nodeType": "YulAssignment",
"src": "9923:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9934:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9939:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9930:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9930:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9923:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9716:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9724:3:1",
"type": ""
}
],
"src": "9582:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10125:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10135:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10147:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10158:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10143:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10143:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10135:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10182:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10193:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10178:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10178:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10201:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10207:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10197:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10197:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10171:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10171:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "10171:47:1"
},
{
"nodeType": "YulAssignment",
"src": "10227:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10361:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "10235:124:1"
},
"nodeType": "YulFunctionCall",
"src": "10235:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10227:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10105:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10120:4:1",
"type": ""
}
],
"src": "9954:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10485:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10507:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10515:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10503:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10503:14:1"
},
{
"hexValue": "6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10519:32:1",
"type": "",
"value": "not owner nor approved for all"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10496:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10496:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "10496:56:1"
}
]
},
"name": "store_literal_in_memory_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "10477:6:1",
"type": ""
}
],
"src": "10379:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10711:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10721:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10787:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10792:2:1",
"type": "",
"value": "30"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "10728:58:1"
},
"nodeType": "YulFunctionCall",
"src": "10728:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10721:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10893:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63",
"nodeType": "YulIdentifier",
"src": "10804:88:1"
},
"nodeType": "YulFunctionCall",
"src": "10804:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "10804:93:1"
},
{
"nodeType": "YulAssignment",
"src": "10906:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10917:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10922:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10913:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10913:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10906:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "10699:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "10707:3:1",
"type": ""
}
],
"src": "10565:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11108:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11118:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11130:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11141:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11126:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11126:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11118:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11165:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11176:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11161:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11161:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11184:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11190:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11180:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11180:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11154:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11154:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "11154:47:1"
},
{
"nodeType": "YulAssignment",
"src": "11210:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11344:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "11218:124:1"
},
"nodeType": "YulFunctionCall",
"src": "11218:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11210:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11088:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11103:4:1",
"type": ""
}
],
"src": "10937:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11468:66:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "11490:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11498:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11486:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11486:14:1"
},
{
"hexValue": "6e6f74206f776e6572206e6f7220617070726f766564",
"kind": "string",
"nodeType": "YulLiteral",
"src": "11502:24:1",
"type": "",
"value": "not owner nor approved"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11479:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11479:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "11479:48:1"
}
]
},
"name": "store_literal_in_memory_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "11460:6:1",
"type": ""
}
],
"src": "11362:172:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11686:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11696:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11762:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11767:2:1",
"type": "",
"value": "22"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "11703:58:1"
},
"nodeType": "YulFunctionCall",
"src": "11703:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11696:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11868:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f",
"nodeType": "YulIdentifier",
"src": "11779:88:1"
},
"nodeType": "YulFunctionCall",
"src": "11779:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "11779:93:1"
},
{
"nodeType": "YulAssignment",
"src": "11881:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11892:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11897:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11888:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11888:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11881:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "11674:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11682:3:1",
"type": ""
}
],
"src": "11540:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12083:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12093:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12105:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12116:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12101:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12101:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "12093:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12140:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12151:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12136:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12136:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "12159:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12165:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "12155:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12155:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12129:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12129:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "12129:47:1"
},
{
"nodeType": "YulAssignment",
"src": "12185:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "12319:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "12193:124:1"
},
"nodeType": "YulFunctionCall",
"src": "12193:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "12185:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "12063:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "12078:4:1",
"type": ""
}
],
"src": "11912:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12443:64:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "12465:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12473:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12461:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12461:14:1"
},
{
"hexValue": "6d696e7420746f207a65726f2061646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "12477:22:1",
"type": "",
"value": "mint to zero address"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12454:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12454:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "12454:46:1"
}
]
},
"name": "store_literal_in_memory_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "12435:6:1",
"type": ""
}
],
"src": "12337:170:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12659:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12669:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12735:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12740:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "12676:58:1"
},
"nodeType": "YulFunctionCall",
"src": "12676:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12669:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12841:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481",
"nodeType": "YulIdentifier",
"src": "12752:88:1"
},
"nodeType": "YulFunctionCall",
"src": "12752:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "12752:93:1"
},
{
"nodeType": "YulAssignment",
"src": "12854:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12865:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12870:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12861:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12861:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12854:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "12647:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "12655:3:1",
"type": ""
}
],
"src": "12513:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13056:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13066:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13078:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13089:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13074:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13074:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13066:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13113:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13124:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13109:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13109:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13132:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13138:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "13128:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13128:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13102:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13102:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "13102:47:1"
},
{
"nodeType": "YulAssignment",
"src": "13158:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13292:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "13166:124:1"
},
"nodeType": "YulFunctionCall",
"src": "13166:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13158:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "13036:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "13051:4:1",
"type": ""
}
],
"src": "12885:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13416:64:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "13438:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13446:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13434:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13434:14:1"
},
{
"hexValue": "746f6b656e20616c7265616479206d696e746564",
"kind": "string",
"nodeType": "YulLiteral",
"src": "13450:22:1",
"type": "",
"value": "token already minted"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13427:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13427:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "13427:46:1"
}
]
},
"name": "store_literal_in_memory_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "13408:6:1",
"type": ""
}
],
"src": "13310:170:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13632:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13642:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13708:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13713:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "13649:58:1"
},
"nodeType": "YulFunctionCall",
"src": "13649:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13642:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13814:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582",
"nodeType": "YulIdentifier",
"src": "13725:88:1"
},
"nodeType": "YulFunctionCall",
"src": "13725:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "13725:93:1"
},
{
"nodeType": "YulAssignment",
"src": "13827:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13838:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13843:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13834:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13834:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "13827:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "13620:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "13628:3:1",
"type": ""
}
],
"src": "13486:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14029:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14039:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14051:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14062:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14047:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14047:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14039:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14086:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14097:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14082:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14082:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14105:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14111:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "14101:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14101:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14075:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14075:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "14075:47:1"
},
{
"nodeType": "YulAssignment",
"src": "14131:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14265:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "14139:124:1"
},
"nodeType": "YulFunctionCall",
"src": "14139:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14131:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "14009:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "14024:4:1",
"type": ""
}
],
"src": "13858:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14311:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14328:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14331:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14321:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14321:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "14321:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14425:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14428:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14418:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14418:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "14418:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14449:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14452:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "14442:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14442:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "14442:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "14283:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14513:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14523:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14546:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "14528:17:1"
},
"nodeType": "YulFunctionCall",
"src": "14528:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14523:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "14557:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14580:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "14562:17:1"
},
"nodeType": "YulFunctionCall",
"src": "14562:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14557:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "14720:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "14722:16:1"
},
"nodeType": "YulFunctionCall",
"src": "14722:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "14722:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14641:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14648:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14716:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "14644:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14644:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "14638:2:1"
},
"nodeType": "YulFunctionCall",
"src": "14638:81:1"
},
"nodeType": "YulIf",
"src": "14635:107:1"
},
{
"nodeType": "YulAssignment",
"src": "14752:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14763:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14766:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14759:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14759:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "14752:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "14500:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "14503:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "14509:3:1",
"type": ""
}
],
"src": "14469:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14825:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14835:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14858:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "14840:17:1"
},
"nodeType": "YulFunctionCall",
"src": "14840:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14835:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "14869:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14892:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "14874:17:1"
},
"nodeType": "YulFunctionCall",
"src": "14874:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14869:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "14916:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "14918:16:1"
},
"nodeType": "YulFunctionCall",
"src": "14918:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "14918:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14910:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14913:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "14907:2:1"
},
"nodeType": "YulFunctionCall",
"src": "14907:8:1"
},
"nodeType": "YulIf",
"src": "14904:34:1"
},
{
"nodeType": "YulAssignment",
"src": "14948:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14960:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14963:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "14956:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14956:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "14948:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "14811:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "14814:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "14820:4:1",
"type": ""
}
],
"src": "14780:191:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15083:64:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "15105:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15113:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15101:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15101:14:1"
},
{
"hexValue": "6f776e6572203d207a65726f2061646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "15117:22:1",
"type": "",
"value": "owner = zero address"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15094:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15094:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "15094:46:1"
}
]
},
"name": "store_literal_in_memory_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "15075:6:1",
"type": ""
}
],
"src": "14977:170:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15299:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15309:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15375:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15380:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "15316:58:1"
},
"nodeType": "YulFunctionCall",
"src": "15316:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15309:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15481:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8",
"nodeType": "YulIdentifier",
"src": "15392:88:1"
},
"nodeType": "YulFunctionCall",
"src": "15392:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "15392:93:1"
},
{
"nodeType": "YulAssignment",
"src": "15494:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15505:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15510:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15501:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15501:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "15494:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "15287:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "15295:3:1",
"type": ""
}
],
"src": "15153:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15696:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15706:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15718:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15729:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15714:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15714:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15706:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15753:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15764:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15749:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15749:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15772:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15778:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "15768:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15768:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15742:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15742:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "15742:47:1"
},
{
"nodeType": "YulAssignment",
"src": "15798:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15932:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "15806:124:1"
},
"nodeType": "YulFunctionCall",
"src": "15806:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15798:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "15676:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "15691:4:1",
"type": ""
}
],
"src": "15525:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16056:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "16078:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16086:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16074:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16074:14:1"
},
{
"hexValue": "6e6f74206f776e6572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "16090:11:1",
"type": "",
"value": "not owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16067:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16067:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "16067:35:1"
}
]
},
"name": "store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "16048:6:1",
"type": ""
}
],
"src": "15950:159:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16261:219:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16271:73:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16337:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16342:1:1",
"type": "",
"value": "9"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "16278:58:1"
},
"nodeType": "YulFunctionCall",
"src": "16278:66:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16271:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16442:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e",
"nodeType": "YulIdentifier",
"src": "16353:88:1"
},
"nodeType": "YulFunctionCall",
"src": "16353:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "16353:93:1"
},
{
"nodeType": "YulAssignment",
"src": "16455:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16466:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16471:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16462:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16462:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "16455:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "16249:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "16257:3:1",
"type": ""
}
],
"src": "16115:365:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16657:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16667:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16679:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16690:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16675:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16675:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16667:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16714:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16725:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16710:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16710:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16733:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16739:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "16729:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16729:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16703:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16703:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "16703:47:1"
},
{
"nodeType": "YulAssignment",
"src": "16759:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16893:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "16767:124:1"
},
"nodeType": "YulFunctionCall",
"src": "16767:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16759:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "16637:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "16652:4:1",
"type": ""
}
],
"src": "16486:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17017:72:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "17039:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17047:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17035:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17035:14:1"
},
{
"hexValue": "7472616e7366657220746f20746865207a65726f2061646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "17051:30:1",
"type": "",
"value": "transfer to the zero address"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17028:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17028:54:1"
},
"nodeType": "YulExpressionStatement",
"src": "17028:54:1"
}
]
},
"name": "store_literal_in_memory_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "17009:6:1",
"type": ""
}
],
"src": "16911:178:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17241:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17251:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17317:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17322:2:1",
"type": "",
"value": "28"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "17258:58:1"
},
"nodeType": "YulFunctionCall",
"src": "17258:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17251:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17423:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1",
"nodeType": "YulIdentifier",
"src": "17334:88:1"
},
"nodeType": "YulFunctionCall",
"src": "17334:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "17334:93:1"
},
{
"nodeType": "YulAssignment",
"src": "17436:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17447:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17452:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17443:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17443:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "17436:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "17229:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "17237:3:1",
"type": ""
}
],
"src": "17095:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17638:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17648:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17660:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17671:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17656:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17656:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "17648:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17695:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17706:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17691:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17691:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "17714:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17720:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "17710:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17710:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17684:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17684:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "17684:47:1"
},
{
"nodeType": "YulAssignment",
"src": "17740:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "17874:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "17748:124:1"
},
"nodeType": "YulFunctionCall",
"src": "17748:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "17740:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "17618:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "17633:4:1",
"type": ""
}
],
"src": "17467:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17998:62:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "18020:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18028:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18016:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18016:14:1"
},
{
"hexValue": "6e6f74204552433732315265636569766572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "18032:20:1",
"type": "",
"value": "not ERC721Receiver"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "18009:6:1"
},
"nodeType": "YulFunctionCall",
"src": "18009:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "18009:44:1"
}
]
},
"name": "store_literal_in_memory_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "17990:6:1",
"type": ""
}
],
"src": "17892:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18212:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "18222:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18288:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18293:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "18229:58:1"
},
"nodeType": "YulFunctionCall",
"src": "18229:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18222:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18394:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149",
"nodeType": "YulIdentifier",
"src": "18305:88:1"
},
"nodeType": "YulFunctionCall",
"src": "18305:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "18305:93:1"
},
{
"nodeType": "YulAssignment",
"src": "18407:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18418:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18423:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18414:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18414:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "18407:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "18200:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "18208:3:1",
"type": ""
}
],
"src": "18066:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18609:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "18619:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "18631:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18642:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18627:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18627:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "18619:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "18666:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18677:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18662:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18662:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "18685:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "18691:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "18681:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18681:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "18655:6:1"
},
"nodeType": "YulFunctionCall",
"src": "18655:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "18655:47:1"
},
{
"nodeType": "YulAssignment",
"src": "18711:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "18845:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "18719:124:1"
},
"nodeType": "YulFunctionCall",
"src": "18719:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "18711:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "18589:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "18604:4:1",
"type": ""
}
],
"src": "18438:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18921:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "18932:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "18948:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "18942:5:1"
},
"nodeType": "YulFunctionCall",
"src": "18942:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "18932:6:1"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "18904:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "18914:6:1",
"type": ""
}
],
"src": "18863:98:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19062:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19079:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19084:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19072:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19072:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "19072:19:1"
},
{
"nodeType": "YulAssignment",
"src": "19100:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19119:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19124:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19115:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19115:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "19100:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "19034:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "19039:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "19050:11:1",
"type": ""
}
],
"src": "18967:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19190:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "19200:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "19209:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "19204:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "19269:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "19294:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "19299:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19290:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19290:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "19313:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "19318:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19309:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19309:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "19303:5:1"
},
"nodeType": "YulFunctionCall",
"src": "19303:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19283:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19283:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "19283:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "19230:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19233:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "19227:2:1"
},
"nodeType": "YulFunctionCall",
"src": "19227:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "19241:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "19243:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "19252:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19255:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19248:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19248:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "19243:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "19223:3:1",
"statements": []
},
"src": "19219:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19366:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "19416:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19421:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19412:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19412:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19430:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19405:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19405:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "19405:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "19347:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19350:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "19344:2:1"
},
"nodeType": "YulFunctionCall",
"src": "19344:13:1"
},
"nodeType": "YulIf",
"src": "19341:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "19172:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "19177:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "19182:6:1",
"type": ""
}
],
"src": "19141:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19544:270:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "19554:52:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "19600:5:1"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "19568:31:1"
},
"nodeType": "YulFunctionCall",
"src": "19568:38:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "19558:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "19615:77:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19680:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19685:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "19622:57:1"
},
"nodeType": "YulFunctionCall",
"src": "19622:70:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19615:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "19727:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19734:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19723:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19723:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19741:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19746:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "19701:21:1"
},
"nodeType": "YulFunctionCall",
"src": "19701:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "19701:52:1"
},
{
"nodeType": "YulAssignment",
"src": "19762:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19773:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19800:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "19778:21:1"
},
"nodeType": "YulFunctionCall",
"src": "19778:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19769:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19769:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "19762:3:1"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "19525:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "19532:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "19540:3:1",
"type": ""
}
],
"src": "19454:360:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20020:440:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "20030:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20042:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20053:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20038:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20038:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "20030:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "20111:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20124:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20135:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20120:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20120:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "20067:43:1"
},
"nodeType": "YulFunctionCall",
"src": "20067:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "20067:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "20192:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20205:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20216:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20201:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20201:18:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "20148:43:1"
},
"nodeType": "YulFunctionCall",
"src": "20148:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "20148:72:1"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "20274:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20287:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20298:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20283:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20283:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "20230:43:1"
},
"nodeType": "YulFunctionCall",
"src": "20230:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "20230:72:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20323:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20334:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20319:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20319:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "20343:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20349:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "20339:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20339:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "20312:6:1"
},
"nodeType": "YulFunctionCall",
"src": "20312:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "20312:48:1"
},
{
"nodeType": "YulAssignment",
"src": "20369:84:1",
"value": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "20439:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "20448:4:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "20377:61:1"
},
"nodeType": "YulFunctionCall",
"src": "20377:76:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "20369:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "19968:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "19980:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "19988:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "19996:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "20004:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "20015:4:1",
"type": ""
}
],
"src": "19820:640:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20528:79:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "20538:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "20553:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "20547:5:1"
},
"nodeType": "YulFunctionCall",
"src": "20547:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "20538:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "20595:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bytes4",
"nodeType": "YulIdentifier",
"src": "20569:25:1"
},
"nodeType": "YulFunctionCall",
"src": "20569:32:1"
},
"nodeType": "YulExpressionStatement",
"src": "20569:32:1"
}
]
},
"name": "abi_decode_t_bytes4_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "20506:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "20514:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "20522:5:1",
"type": ""
}
],
"src": "20466:141:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20689:273:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "20735:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "20737:77:1"
},
"nodeType": "YulFunctionCall",
"src": "20737:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "20737:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "20710:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20719:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "20706:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20706:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20731:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "20702:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20702:32:1"
},
"nodeType": "YulIf",
"src": "20699:119:1"
},
{
"nodeType": "YulBlock",
"src": "20828:127:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "20843:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "20857:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "20847:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "20872:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20917:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "20928:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20913:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20913:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "20937:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes4_fromMemory",
"nodeType": "YulIdentifier",
"src": "20882:30:1"
},
"nodeType": "YulFunctionCall",
"src": "20882:63:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "20872:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "20659:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "20670:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "20682:6:1",
"type": ""
}
],
"src": "20613:349: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 cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(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_bytes4(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 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_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\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 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__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 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 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 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_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 validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(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_bool(add(headStart, offset), dataEnd)\n }\n\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_bytes_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_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_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_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { 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 let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(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 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 store_literal_in_memory_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b(memPtr) {\n\n mstore(add(memPtr, 0), \"token doesn't exist\")\n\n }\n\n function abi_encode_t_stringliteral_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b__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_6c84eed0a6644f5a7354ec927cedae14a4c91d38a501e30babdb96627607972b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63(memPtr) {\n\n mstore(add(memPtr, 0), \"not owner nor approved for all\")\n\n }\n\n function abi_encode_t_stringliteral_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63__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_3e9e6150df4c9e576c90f529ebe8ecd17bf3a04a9d4e8cf23737828c33f74b63_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f(memPtr) {\n\n mstore(add(memPtr, 0), \"not owner nor approved\")\n\n }\n\n function abi_encode_t_stringliteral_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f__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_18e601c67f7aa8495377affa64661dcafd5976d6c14b07bfaf943c928a426f3f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481(memPtr) {\n\n mstore(add(memPtr, 0), \"mint to zero address\")\n\n }\n\n function abi_encode_t_stringliteral_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481__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_568e262bd5aa3a754944c427dcb1c615cb90c0572e9f497fa91ae4064ffcc481_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582(memPtr) {\n\n mstore(add(memPtr, 0), \"token already minted\")\n\n }\n\n function abi_encode_t_stringliteral_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582__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_b2547936e1aa3d957901ab236edb7b8d7386b0029d25abf48449346142595582_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_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function store_literal_in_memory_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8(memPtr) {\n\n mstore(add(memPtr, 0), \"owner = zero address\")\n\n }\n\n function abi_encode_t_stringliteral_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8__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_842041bfe54be909512138a4f7040890611ae6f36314c55100efacf9ad59eda8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e(memPtr) {\n\n mstore(add(memPtr, 0), \"not owner\")\n\n }\n\n function abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 9)\n store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__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_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1(memPtr) {\n\n mstore(add(memPtr, 0), \"transfer to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1__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_28d7a2278eef6b97b115358f049a1a3d3d7d04273936a984bb0924c2b0a5d0e1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149(memPtr) {\n\n mstore(add(memPtr, 0), \"not ERC721Receiver\")\n\n }\n\n function abi_encode_t_stringliteral_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149__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_dc9e966a992a3a41790613011a8a70c1bcfa6c3dc0a58d9e9ed68f6a42ef4149_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_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 mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100b45760003560e01c806342966c681161007157806342966c68146101895780636352211e146101a557806370a08231146101d5578063a22cb46514610205578063b88d4fde14610221578063e985e9c51461023d576100b4565b806301ffc9a7146100b9578063081812fc146100e9578063095ea7b31461011957806323b872dd1461013557806340c10f191461015157806342842e0e1461016d575b600080fd5b6100d360048036038101906100ce9190611276565b61026d565b6040516100e091906112be565b60405180910390f35b61010360048036038101906100fe919061130f565b61033f565b604051610110919061137d565b60405180910390f35b610133600480360381019061012e91906113c4565b61041d565b005b61014f600480360381019061014a9190611404565b610563565b005b61016b600480360381019061016691906113c4565b6105cc565b005b61018760048036038101906101829190611404565b6107e4565b005b6101a3600480360381019061019e919061130f565b610804565b005b6101bf60048036038101906101ba919061130f565b610908565b6040516101cc919061137d565b60405180910390f35b6101ef60048036038101906101ea9190611457565b6109b4565b6040516101fc9190611493565b60405180910390f35b61021f600480360381019061021a91906114da565b610a6c565b005b61023b60048036038101906102369190611660565b610b69565b005b610257600480360381019061025291906116e3565b610bd4565b60405161026491906112be565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061033857507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d990611780565b60405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600080600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806105145750600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054a906117ec565b60405180910390fd5b61055e818484610c68565b505050565b600061056e82610908565b905061057b813384610d1a565b6105ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b190611858565b60405180910390fd5b6105c681858585610e4e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561063c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610633906118c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d490611930565b60405180910390fd5b60018060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461072c919061197f565b925050819055508160008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6107ff83838360405180602001604052806000815250610b69565b505050565b600061080f82610908565b905061081d81600084610c68565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461086c91906119d5565b9250508190555060008083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a690611780565b60405180910390fd5b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1c90611a55565b60405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b5d91906112be565b60405180910390a35050565b6000610b7483610908565b9050610b81813385610d1a565b610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb790611858565b60405180910390fd5b610bcd8186868686611096565b5050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60008373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610db457508273ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610e455750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390611ac1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390611b2d565b60405180910390fd5b610f3884600083610c68565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f8791906119d5565b9250508190555060018060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fdd919061197f565b925050819055508160008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b6110a285858585610e4e565b6110ae848484846110f4565b6110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490611b99565b60405180910390fd5b5050505050565b60006111158473ffffffffffffffffffffffffffffffffffffffff166111f7565b156111ea5763150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff1660e01b81526004016111809493929190611c41565b6020604051808303816000875af115801561119f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c39190611ca2565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161490506111ef565b600190505b949350505050565b600080823b905060008111915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6112538161121e565b811461125e57600080fd5b50565b6000813590506112708161124a565b92915050565b60006020828403121561128c5761128b611214565b5b600061129a84828501611261565b91505092915050565b60008115159050919050565b6112b8816112a3565b82525050565b60006020820190506112d360008301846112af565b92915050565b6000819050919050565b6112ec816112d9565b81146112f757600080fd5b50565b600081359050611309816112e3565b92915050565b60006020828403121561132557611324611214565b5b6000611333848285016112fa565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113678261133c565b9050919050565b6113778161135c565b82525050565b6000602082019050611392600083018461136e565b92915050565b6113a18161135c565b81146113ac57600080fd5b50565b6000813590506113be81611398565b92915050565b600080604083850312156113db576113da611214565b5b60006113e9858286016113af565b92505060206113fa858286016112fa565b9150509250929050565b60008060006060848603121561141d5761141c611214565b5b600061142b868287016113af565b935050602061143c868287016113af565b925050604061144d868287016112fa565b9150509250925092565b60006020828403121561146d5761146c611214565b5b600061147b848285016113af565b91505092915050565b61148d816112d9565b82525050565b60006020820190506114a86000830184611484565b92915050565b6114b7816112a3565b81146114c257600080fd5b50565b6000813590506114d4816114ae565b92915050565b600080604083850312156114f1576114f0611214565b5b60006114ff858286016113af565b9250506020611510858286016114c5565b9150509250929050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61156d82611524565b810181811067ffffffffffffffff8211171561158c5761158b611535565b5b80604052505050565b600061159f61120a565b90506115ab8282611564565b919050565b600067ffffffffffffffff8211156115cb576115ca611535565b5b6115d482611524565b9050602081019050919050565b82818337600083830152505050565b60006116036115fe846115b0565b611595565b90508281526020810184848401111561161f5761161e61151f565b5b61162a8482856115e1565b509392505050565b600082601f8301126116475761164661151a565b5b81356116578482602086016115f0565b91505092915050565b6000806000806080858703121561167a57611679611214565b5b6000611688878288016113af565b9450506020611699878288016113af565b93505060406116aa878288016112fa565b925050606085013567ffffffffffffffff8111156116cb576116ca611219565b5b6116d787828801611632565b91505092959194509250565b600080604083850312156116fa576116f9611214565b5b6000611708858286016113af565b9250506020611719858286016113af565b9150509250929050565b600082825260208201905092915050565b7f746f6b656e20646f65736e277420657869737400000000000000000000000000600082015250565b600061176a601383611723565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c0000600082015250565b60006117d6601e83611723565b91506117e1826117a0565b602082019050919050565b60006020820190508181036000830152611805816117c9565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656400000000000000000000600082015250565b6000611842601683611723565b915061184d8261180c565b602082019050919050565b6000602082019050818103600083015261187181611835565b9050919050565b7f6d696e7420746f207a65726f2061646472657373000000000000000000000000600082015250565b60006118ae601483611723565b91506118b982611878565b602082019050919050565b600060208201905081810360008301526118dd816118a1565b9050919050565b7f746f6b656e20616c7265616479206d696e746564000000000000000000000000600082015250565b600061191a601483611723565b9150611925826118e4565b602082019050919050565b600060208201905081810360008301526119498161190d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198a826112d9565b9150611995836112d9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156119ca576119c9611950565b5b828201905092915050565b60006119e0826112d9565b91506119eb836112d9565b9250828210156119fe576119fd611950565b5b828203905092915050565b7f6f776e6572203d207a65726f2061646472657373000000000000000000000000600082015250565b6000611a3f601483611723565b9150611a4a82611a09565b602082019050919050565b60006020820190508181036000830152611a6e81611a32565b9050919050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b6000611aab600983611723565b9150611ab682611a75565b602082019050919050565b60006020820190508181036000830152611ada81611a9e565b9050919050565b7f7472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b6000611b17601c83611723565b9150611b2282611ae1565b602082019050919050565b60006020820190508181036000830152611b4681611b0a565b9050919050565b7f6e6f742045524337323152656365697665720000000000000000000000000000600082015250565b6000611b83601283611723565b9150611b8e82611b4d565b602082019050919050565b60006020820190508181036000830152611bb281611b76565b9050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611bf3578082015181840152602081019050611bd8565b83811115611c02576000848401525b50505050565b6000611c1382611bb9565b611c1d8185611bc4565b9350611c2d818560208601611bd5565b611c3681611524565b840191505092915050565b6000608082019050611c56600083018761136e565b611c63602083018661136e565b611c706040830185611484565b8181036060830152611c828184611c08565b905095945050505050565b600081519050611c9c8161124a565b92915050565b600060208284031215611cb857611cb7611214565b5b6000611cc684828501611c8d565b9150509291505056fea264697066735822122060c50e53da8642225398740e966a8a9cff1fe9c7fc3b1835368ac8c4e77c4a6d64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42966C68 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x189 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x23D JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x16D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x26D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE0 SWAP2 SWAP1 PUSH2 0x12BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x103 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x130F JUMP JUMPDEST PUSH2 0x33F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x110 SWAP2 SWAP1 PUSH2 0x137D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12E SWAP2 SWAP1 PUSH2 0x13C4 JUMP JUMPDEST PUSH2 0x41D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1404 JUMP JUMPDEST PUSH2 0x563 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x166 SWAP2 SWAP1 PUSH2 0x13C4 JUMP JUMPDEST PUSH2 0x5CC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x187 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x182 SWAP2 SWAP1 PUSH2 0x1404 JUMP JUMPDEST PUSH2 0x7E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x19E SWAP2 SWAP1 PUSH2 0x130F JUMP JUMPDEST PUSH2 0x804 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x130F JUMP JUMPDEST PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CC SWAP2 SWAP1 PUSH2 0x137D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1EA SWAP2 SWAP1 PUSH2 0x1457 JUMP JUMPDEST PUSH2 0x9B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x1493 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21A SWAP2 SWAP1 PUSH2 0x14DA JUMP JUMPDEST PUSH2 0xA6C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x1660 JUMP JUMPDEST PUSH2 0xB69 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x252 SWAP2 SWAP1 PUSH2 0x16E3 JUMP JUMPDEST PUSH2 0xBD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x264 SWAP2 SWAP1 PUSH2 0x12BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x338 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x3E2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D9 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x514 JUMPI POP PUSH1 0x3 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x553 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x54A SWAP1 PUSH2 0x17EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x55E DUP2 DUP5 DUP5 PUSH2 0xC68 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56E DUP3 PUSH2 0x908 JUMP JUMPDEST SWAP1 POP PUSH2 0x57B DUP2 CALLER DUP5 PUSH2 0xD1A JUMP JUMPDEST PUSH2 0x5BA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B1 SWAP1 PUSH2 0x1858 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C6 DUP2 DUP6 DUP6 DUP6 PUSH2 0xE4E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x63C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x633 SWAP1 PUSH2 0x18C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6D4 SWAP1 PUSH2 0x1930 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x72C SWAP2 SWAP1 PUSH2 0x197F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x7FF DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xB69 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x80F DUP3 PUSH2 0x908 JUMP JUMPDEST SWAP1 POP PUSH2 0x81D DUP2 PUSH1 0x0 DUP5 PUSH2 0xC68 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x86C SWAP2 SWAP1 PUSH2 0x19D5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE DUP2 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A6 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA25 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA1C SWAP1 PUSH2 0x1A55 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0xB5D SWAP2 SWAP1 PUSH2 0x12BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB74 DUP4 PUSH2 0x908 JUMP JUMPDEST SWAP1 POP PUSH2 0xB81 DUP2 CALLER DUP6 PUSH2 0xD1A JUMP JUMPDEST PUSH2 0xBC0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBB7 SWAP1 PUSH2 0x1858 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBCD DUP2 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1096 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xDB4 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST DUP1 PUSH2 0xE45 JUMPI POP PUSH1 0x3 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEBC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEB3 SWAP1 PUSH2 0x1AC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xF2C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF23 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF38 DUP5 PUSH1 0x0 DUP4 PUSH2 0xC68 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xF87 SWAP2 SWAP1 PUSH2 0x19D5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

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